在matplotlib图中绘制SVG(嵌入wxPython中)
我正在尝试将SVG图像嵌入matplotlib子地块中 matplotlib只能以本机方式读取PNG,但如果安装了PIL,它将使用它加载映像并返回可与imshow()一起使用的数组(如果可能)。 当然,PIL不支持SVG。错误: 文件“/usr/lib/python2.7/dist packages/PIL/Image.py”,第1980行,在 打开 raise IOError(“无法识别图像文件”) IOError:无法识别图像文件 如何使用在matplotlib图中绘制SVG(嵌入wxPython中),python,svg,matplotlib,Python,Svg,Matplotlib,我正在尝试将SVG图像嵌入matplotlib子地块中 matplotlib只能以本机方式读取PNG,但如果安装了PIL,它将使用它加载映像并返回可与imshow()一起使用的数组(如果可能)。 当然,PIL不支持SVG。错误: 文件“/usr/lib/python2.7/dist packages/PIL/Image.py”,第1980行,在 打开 raise IOError(“无法识别图像文件”) IOError:无法识别图像文件 如何使用imshow将SVG文件光栅化以进行打印,或使用m
imshow
将SVG文件光栅化以进行打印,或使用matplotlib直接打印矢量
谢谢。我也有同样的问题,但现在在我的pylustrator包中实现了一个解决方案: 它可以读取和解析svg文件,并创建matplotlib美工器以在图中显示svg内容
并非所有svg功能都可以由matplotlib美工人员模拟,因此,例如渐变或过滤器将不会显示,但支持大多数svg功能。相关,但不是答案。另外:取决于SVG的复杂程度。如果它很简单,您可以尝试使用标准python xml库解析它,并创建本机matplotlib美工器?可能是一个公平的工作,虽然。。。对不起,我对这个问题没有一个好的答案。
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)