如何改变Matplotlib绘制的图形大小?
我该如何改变用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参数。