【发布时间】:2012-08-23 02:19:19
【问题描述】:
我正在尝试在 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 行,在 打开
raise IOError("无法识别图片文件")
IOError: 无法识别图像文件
如何栅格化 SVG 文件以使用 imshow 绘制或直接使用 matplotlib 绘制矢量?
谢谢。
【问题讨论】:
-
相关,但不是答案。 stackoverflow.com/questions/3600164/…
-
取决于你的 SVG 有多复杂。如果它是一个简单的,您可以尝试使用标准 python xml 库解析它并创建本机 matplotlib 艺术家?可能是相当多的工作......对不起,我真的没有一个很好的答案。
标签: python svg matplotlib