如何更改使用Matplotlib绘制的图形的大小?
当前回答
如果已经创建了地物,可以使用figure.set_size_inches调整地物大小:
fig = matplotlib.pyplot.gcf()
fig.set_size_inches(18.5, 10.5)
fig.savefig('test2png.png', dpi=100)
要将大小更改传播到现有GUI窗口,请添加forward=True:
fig.set_size_inches(18.5, 10.5, forward=True)
此外,正如Erik Shilts在评论中提到的,您还可以使用figure.set_dpi来“设置图形的分辨率,单位为每英寸点数”
fig.set_dpi(100)
其他回答
如果已经创建了地物,可以使用figure.set_size_inches调整地物大小:
fig = matplotlib.pyplot.gcf()
fig.set_size_inches(18.5, 10.5)
fig.savefig('test2png.png', dpi=100)
要将大小更改传播到现有GUI窗口,请添加forward=True:
fig.set_size_inches(18.5, 10.5, forward=True)
此外,正如Erik Shilts在评论中提到的,您还可以使用figure.set_dpi来“设置图形的分辨率,单位为每英寸点数”
fig.set_dpi(100)
您可以简单地使用(来自matplotlib.figure.figure):
fig.set_size_inches(width,height)
从Matplotlib 2.0.0开始,画布的更改将立即可见,因为forward关键字默认为True。
如果只想更改宽度或高度,而不是同时更改两者,可以使用
图set_figwidth(val)或图set_feight(val)
这些也会立即更新画布,但仅限于Matplotlib 2.2.0及更新版本。
对于旧版本
您需要显式指定forward=True,以便在比上面指定的更早的版本中实时更新画布。注意,在Matplotlib 1.5.0之前的版本中,set_figwidth和set_figeight函数不支持forward参数。
折旧说明:根据Matplotlib官方指南,不再建议使用pylab模块。请考虑改用matplotlib.pyplot模块,如另一个答案所述。
以下方法似乎有效:
from pylab import rcParams
rcParams['figure.figsize'] = 5, 10
这使图形的宽度为5英寸,高度为10英寸。
然后,Figure类将其用作其参数之一的默认值。
使用plt.rcParams
如果您想在不使用地物环境的情况下更改大小,也可以使用此解决方法。例如,如果使用plt.plot(),可以设置一个具有宽度和高度的元组。
import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = (20,3)
这在内联绘图时非常有用(例如,使用IPython Notebook)。正如我们所注意到的,最好不要将此语句放在imports语句的同一单元格中。
要将后续绘图的全局地物尺寸重置回默认值,请执行以下操作:
plt.rcParams["figure.figsize"] = plt.rcParamsDefault["figure.figsize"]
转换为厘米
figsize元组接受英寸,因此如果要将其设置为厘米,则必须将其除以2.54。看看这个问题。
这将在绘制图形后立即调整图形大小(至少使用Qt4Agg/TkAgg,但不使用Mac OS X和Matplotlib 1.4.0):
matplotlib.pyplot.get_current_fig_manager().resize(width_px, height_px)
推荐文章
- 证书验证失败:无法获得本地颁发者证书
- 当使用pip3安装包时,“Python中的ssl模块不可用”
- 无法切换Python与pyenv
- Python if not == vs if !=
- 如何从scikit-learn决策树中提取决策规则?
- 为什么在Mac OS X v10.9 (Mavericks)的终端中apt-get功能不起作用?
- 将旋转的xtick标签与各自的xtick对齐
- 为什么元组可以包含可变项?
- 如何合并字典的字典?
- 如何创建类属性?
- 不区分大小写的“in”
- 在Python中获取迭代器中的元素个数
- 解析日期字符串并更改格式
- 使用try和。Python中的if
- 如何在Python中获得所有直接子目录