使用matplotlib创建详细的svg图

问题描述 投票:0回答:1

我使用Python库matplotlib绘制了包含大量数据的图形。执行plt.show()后,我可以放大并查看图表的详细信息。但是,我想使用plt.savefig将图形保存到svg文件中,并查看这些详细信息,这些详细信息默认情况下在默认的非放大视图中不可见。我该怎么办?

[请注意,使用矢量图形格式(例如svg文件)时,增加DPI或按英寸英寸的尺寸是没有意义的。

作为示例,请考虑以下程序。

import matplotlib.pyplot as plt
import numpy as np
import math

x = np.arange(0,100,0.00001)
y = x*np.sin(2*math.pi*(x**1.2))
plt.plot(y)
plt.savefig('test.svg')

我们将获得以下绘图,即使我们进行缩放,也无法看到正弦波周期的详细信息。enter image description here

但是当用plt.show代替图像显示并放大时,我们可以看到正弦波的细节。enter image description here

python python-3.x matplotlib svg resolution
1个回答
1
投票

一种解决方法可能是增加图形的大小:

import matplotlib.pyplot as plt
import numpy as np
import math

x = np.arange(0,100,0.00001)
y = x*np.sin(2*math.pi*(x**1.2))
fig = plt.figure(figsize=(19.20,10.80))

plt.plot(y)
plt.savefig('test.svg')

您将获得所需的分辨率。


如JohanC正确观察到的,另一个好的解决方案是减小线的宽度:

import matplotlib.pyplot as plt
import numpy as np
import math

x = np.arange(0,100,0.00001)
y = x*np.sin(2*math.pi*(x**1.2))
#fig = plt.figure(figsize=(19.20,10.80))

plt.plot(y, linewidth=0.1)
plt.savefig('test.svg')
© www.soinside.com 2019 - 2024. All rights reserved.