当前位置: 首页 > 面试题库 >

在matplotlib图中绘制SVG(嵌入在wxPython中)

穆阳嘉
2023-03-14
问题内容

我试图将SVG图像嵌入matplotlib子图中。

matplotlib只能本地读取PNG,但是如果安装了PIL,它将使用它来加载图像并返回可以与imshow()一起使用的数组(如果可能)。 http://matplotlib.sourceforge.net/api/pyplot_api.html

import Image     
filename = "/tmp/figure.svg"
pil_img = Image.open(filename) # PIL image
img = np.asarray(pil_img) # converting PIL image into numpy array
self.axes.cla()
self.axes.imshow(img)

但是,当然PIL不支持SVG。错误:

打开文件“ /usr/lib/python2.7/dist-packages/PIL/Image.py”,行1980

引发IOError(“无法识别图像文件”)

IOError:无法识别图像文件

如何光栅化SVG文件以imshow使用matplotlib进行绘制或使用矢量直接绘制矢量?

谢谢。


问题答案:

我也遇到了同样的问题,但是现在在我的软件包pylustrator中实现了一个解决方案:https ://pylustrator.readthedocs.io/en/latest/composed.html#svg-files

它可以读取和解析svg文件,并创建matplotlib艺术家以在图中显示svg内容。

并非所有的svg功能都可以由matplotlib艺术家模拟,因此不会显示渐变或过滤器,但支持大多数svg功能。



 类似资料: