首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用matplotlib创建详细的svg图

用matplotlib创建详细的svg图
EN

Stack Overflow用户
提问于 2020-02-04 13:01:57
回答 1查看 2.2K关注 0票数 1

我使用Python matplotlib绘制了一个包含大量数据的图形。在执行plt.show()时,我可以放大并查看图表的细节。但是,我想将图形保存到一个带有plt.savefig的svg文件中,并查看默认的非缩放视图中看不到的这些细节。我怎么能这么做?

请注意,当使用矢量图形格式(如svg文件)时,增加DPI或一英寸一英寸的尺寸是毫无意义的。

例如,请考虑以下程序。

代码语言:javascript
复制
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')

我们会得到下面的图,即使我们放大,我们也看不到正弦波周期的细节。

但是我们可以看到正弦波的细节时,用plt.show代替显示图像,然后放大。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-04 13:46:07

添加该数字的大小:

代码语言:javascript
复制
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正确地观察到的,另一个好的解决方案是减少线条的宽度:

代码语言:javascript
复制
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')
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60058028

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档