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

时间:2012-08-28 14:30:25

标签: python svg matplotlib

我正在尝试在matplotlib子图中嵌入一个SVG图像。

  

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行,in   开

     

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

     

IOError:无法识别图像文件

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

感谢。

1 个答案:

答案 0 :(得分:0)

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

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

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