Matplotlib中使用savefig提高DPI:新手求助fname参数设置
关于plt.savefig的fname参数和使用方法详解
嘿,作为新手完全不用慌,我来把plt.savefig的用法给你掰扯明白,尤其是你问的fname该填什么~
1. fname到底填什么?
其实fname就是你想要保存的图片文件的名称(可以带路径),不需要提前创建任何文件对象,直接写字符串就行,matplotlib会自动帮你生成对应的图片文件。举几个常见的例子:
- 直接写文件名:比如
plt.savefig("max_min_plot.png"),图片会保存在你当前运行代码的文件夹里 - 指定保存路径:比如Windows下写
plt.savefig("C:/Users/YourName/Desktop/my_plot.png"),macOS/Linux下写plt.savefig("/home/yourname/Desktop/my_plot.png"),这样就能把图片存到桌面了 - 换格式保存:除了png,还可以存成jpg、svg、pdf等,只要改后缀就行,比如
plt.savefig("max_min_plot.pdf")
2. 结合你的代码示例修改
你的代码已经创建了fig对象,其实用plt.savefig()或者fig.savefig()都可以,效果完全一样。下面是给你补全后的完整代码示例,顺便加上提高DPI的参数(比如设为300,这是印刷级别的清晰程度):
import matplotlib.pyplot as plt # 你的原有代码 Max_Vals = DFMAX1.tolist() Min_Vals = DFMIN1.tolist() fig = plt.figure() plt.plot(Max_Vals, 'g-') plt.plot(Min_Vals, 'r-') # 假设你还要画最小值的曲线,这里补上示例 plt.xlabel("数据点索引") plt.ylabel("数值大小") plt.title("最大值与最小值变化曲线") # 关键的保存步骤,注意要放在plt.show()之前! plt.savefig("max_min_plot.png", dpi=300) # 这里的fname就是"max_min_plot.png" plt.show()
3. 重要提醒
一定要把plt.savefig()放在plt.show()之前!因为plt.show()会弹出窗口展示图片,同时清空画布,如果先show再savefig,你可能会得到一张空白的图片哦。
4. 用fig.savefig的方式(可选)
你代码里已经创建了fig = plt.figure(),也可以直接调用这个对象的savefig方法,写法是:
fig.savefig("max_min_plot.png", dpi=300)
和plt.savefig的效果完全一样,两种方式选哪个都可以,新手用plt.savefig更直观。
内容的提问来源于stack exchange,提问作者ZakS
相关产品推荐
相关产品推荐

