Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在matplotlib图中绘制SVG(嵌入wxPython中)_Python_Svg_Matplotlib - Fatal编程技术网

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

在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

我正在尝试将SVG图像嵌入matplotlib子地块中

matplotlib只能以本机方式读取PNG,但如果安装了PIL,它将使用它加载映像并返回可与imshow()一起使用的数组(如果可能)。

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

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

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

IOError:无法识别图像文件

如何使用
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)