【发布时间】:2019-08-08 16:20:04
【问题描述】:
我正在尝试使用 Python 和 matplotlib 生成一个 svg 文件。我使用的代码的更简单版本如下:
import matplotlib.pyplot as plt
plt.figure()
plt.fill([0,1,0.5],[0,0,1],color = "r")
plt.fill([1.5,1,0.5],[1,0,1],color = "b")
plt.show()
plt.savefig("soedgesvg.svg")
但是当我在 Inkscape 中打开它时,我得到了一个没有指定颜色的意外鬼边缘。这可以在下图中看到:
在导出 svg 之前,有没有办法在 Python 中移除这条边?
编辑
仅当根据我的经验指定颜色时才会发生这种情况。
Inkscape 0.92.3 和 matplotlib 3.1.1
【问题讨论】:
-
当我运行这段代码并用inkscape打开它时,它看起来是like this。这是 matplotlib 3.1.0,inkscape 0.91。也许您想分享您的版本?
-
你能放大两个三角形相交的点吗?我会用版本更新问题。
-
啊,好吧,使用
linewidth=0。 -
那行得通,谢谢没想到。但是为什么这些线条没有在 matplotlib 中显示,但在 inkscape 中却显示了?您能否将此作为答案发布,以便我可以接受此作为问题的答案?
-
因为线宽是以磅为单位定义的。当您在 matplotlib 中放大时,线条始终保持其物理尺寸,例如1/72。一英寸。当你放大 Inkscape 时,你会放大实际的图形,直到你的屏幕可能只显示 1/72。一英寸,因此这条线将与屏幕一样大。
标签: python matplotlib svg