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

在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功能。



 类似资料:
  • 本文向大家介绍matplotlib 在绘图中插入TeX公式,包括了matplotlib 在绘图中插入TeX公式的使用技巧和注意事项,需要的朋友参考一下 示例 可以使用rc函数将TeX公式插入绘图中 或访问rcParams: TeX\对命令和符号使用反斜杠,这可能与Python字符串中的特殊字符冲突。为了在Python字符串中使用文字反斜杠,必须对它们进行转义或将其合并到原始字符串中: 下图可以通过

  • 我有以下图表,由几行组成: 现在,我想标记绘图中的所有线条。但是,使用将所有标签塞入一个框中,这使得绘图有点难以解释。我想改为使用内联标签。我的理想输出将使用类似以下matplotlib等高线图的标签,但文字标签用于线而不是数字: 在matplotlib文档中,我还没有找到如何做到这一点。有没有办法做到这一点?如果没有,我可以使用什么其他软件生成这种类型的绘图?

  • 做这件事最轻的方法是什么。使用像反应艺术这样的东西对我试图做的事情来说是过度的。

  • 问题内容: 好吧,我需要一些有关将.svg文件/图像转换为.png文件/图像的帮助… 我的页面上显示了一个.svg图像。它保存在我的服务器上(.png文件)。我需要按需将其转换为.png文件(单击按钮),然后将.png文件保存在服务器上(我将通过.ajax请求执行此操作)。 但是问题是转换。 我阅读了很多有关html5 Canvas的内容,这些内容可能可以帮助我做我现在需要做的事情,但是我找不到解

  • 我正在使用python中的matplotlib绘制直方图,并希望绘制一条代表数据集平均值的线,以虚线的形式覆盖在直方图上(或者其他颜色也可以)。关于如何在柱状图上画一条线有什么想法吗? 我正在使用plot()命令,但不确定如何绘制垂直线(即,我应该为y轴指定什么值? 谢谢

  • null 我不敢相信你需要博士学位。 下面是我的带有断块嵌入的示例页面:-https://github.com/sciss/scalacollider/wiki/architecture/2413e094a59df4705e770b2a57ff84a8f0a1e7b4 以下是实际情况:-https://raw.githubusercontent.com/wiki/sciss/scalacollid

  • 问题内容: 在下面,我在框架内部有一个面板。为什么我不能画图?我只是得到一个纯白色的屏幕。如果我摆脱了面板并直接绘制到框架上,那是可行的。任何帮助,将不胜感激。 问题答案: 尝试将事件绑定到面板,而不是整个框架: 您的版本对我来说很有效(Windows),但它会不断重新绘制面板,以致使整个处理器吃光了。 来自文档: 请注意,在绘画事件处理程序中,即使不使用它,应用程序也必须始终创建wxPaintD

  • 问题内容: 我有一个固定宽度的数据文件,其中包含日期,但是当我尝试绘制数据时,日期无法在x轴上正确显示。 我的档案看起来像 等等 我用 熊猫 读文件 所以我想这里的问题是从熊猫到matplotlib日期时间的转换,如何进行转换? 我也直接尝试了熊猫: 但这失败了 TypeError:空的“ Series”:没有要绘制的数字数据 问题答案: 如果您使用包含列名而不是字符串的列表,则data.set_