如何改变Matplotlib绘制的图形大小?

3206 投票
15 回答
6052329 浏览
提问于 2025-04-11 19:14

我该如何改变用Matplotlib绘制的图形大小?

15 个回答

772

使用 plt.rcParams

如果你想在不使用图形环境的情况下改变图的大小,这里有一个解决办法。比如说,当你使用 plt.plot() 时,你可以设置一个包含宽度和高度的元组。

import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = (20,3)

这在你在线绘图时特别有用(例如,使用 IPython Notebook)。正如 asmaier 提到的,最好不要把这个设置放在和导入语句同一个单元格里。

如果你想把全局图形大小重置回默认值,以便后续的图形使用,可以这样做:

plt.rcParams["figure.figsize"] = plt.rcParamsDefault["figure.figsize"]

转换为厘米

figsize 这个元组接受的是英寸,所以如果你想用厘米来设置,就需要把厘米数除以 2.54。可以看看 这个问题

1168

如果你已经创建了图形,可以使用 figure.set_size_inches 来调整图形的大小:

fig = matplotlib.pyplot.gcf()
fig.set_size_inches(18.5, 10.5)
fig.savefig('test2png.png', dpi=100)

如果想把这个大小的变化应用到已经存在的图形界面窗口,可以加上 forward=True

fig.set_size_inches(18.5, 10.5, forward=True)

另外,正如 Erik Shilts 在评论中提到的,你还可以使用 figure.set_dpi 来“设置图形的分辨率,单位是每英寸多少点(dpi)”。

fig.set_dpi(100)
1893

figure 这个函数告诉你怎么使用:

from matplotlib.pyplot import figure

figure(figsize=(8, 6), dpi=80)

figure(figsize=(1,1)) 这个命令会创建一个1英寸乘1英寸的图像,默认情况下这个图像的大小是80像素乘80像素,除非你另外指定一个不同的dpi参数。

撰写回答