gpt4 book ai didi

python - 如何使 savefig() 为 'maximized' 窗口保存图像而不是默认大小

转载 作者:IT老高 更新时间:2023-10-28 20:34:13 26 4
gpt4 key购买 nike

我在 matplotlib 中使用 pylab 来创建绘图并将绘图保存到图像文件中。但是,当我使用 pylab.savefig( image_name ) 保存图像时,我发现保存的SIZE图片和我使用pylab.show()时显示的图片是一样的.

碰巧,我在图中有很多数据,当我使用 pylab.show() 时,我必须最大化窗 Eloquent 能正确看到所有绘图,并且 xlabel 代码不会相互叠加。

在将图像保存到文件之前,我是否可以通过编程方式“最大化”窗口? - 目前,我只得到“默认”窗口大小的图像,这会导致 x 轴标签相互叠加。

最佳答案

matplotlib(pylab)中有两个主要的选项来控制图片大小:

  1. 您可以以英寸为单位设置生成图像的大小
  2. 您可以定义输出文件的 DPI(每英寸点数)(基本上是分辨率)

通常,您希望两者都做,因为这样您就可以完全控制生成的图像大小以像素为单位。例如,如果要精确渲染 800x600 的图像,可以使用 DPI=100,并将尺寸设置为 8 x 6 英寸:

import matplotlib.pyplot as plt
# plot whatever you need...
# now, before saving to file:
figure = plt.gcf() # get current figure
figure.set_size_inches(8, 6)
# when saving, specify the DPI
plt.savefig("myplot.png", dpi = 100)

可以使用任何 DPI。事实上,您可能想要使用各种 DPI 和大小值来获得您最喜欢的结果。但是请注意,使用非常小的 DPI 并不是一个好主意,因为 matplotlib 可能找不到合适的字体来渲染图例和其他文本。例如,您不能设置 DPI=1,因为没有以 1 像素呈现字符的字体:)

从其他评论中,我了解到您遇到的其他问题是正确的文本渲染。为此,您还可以更改字体大小。例如,您可以使用每个字符 6 个像素,而不是默认使用的每个字符 12 个像素(实际上,使所有文本变小两倍)。

import matplotlib
#...
matplotlib.rc('font', size=6)

最后,一些对原始文档的引用: http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.savefig , http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.gcf , http://matplotlib.sourceforge.net/api/figure_api.html#matplotlib.figure.Figure.set_size_inches , http://matplotlib.sourceforge.net/users/customizing.html#dynamic-rc-settings

附:抱歉,我没有使用 pylab,但据我所知,以上所有代码在 pylab 中的工作方式都相同 - 只需将代码中的 plt 替换为 pylab (或您在导入 pylab 时指定的任何名称)。 matplotlib 相同 - 请改用 pylab

关于python - 如何使 savefig() 为 'maximized' 窗口保存图像而不是默认大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10041627/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com