4

我正在尝试fig1.set_size_inches(5.5,3)在 python 上设置图形大小,但该图会产生一个图形,其中 x 标签不完全可见。图形本身有我需要的大小,但里面的轴似乎太高了,x 标签不再适合了。

这是我的代码:

fig1 = plt.figure()
fig1.set_size_inches(5.5,4)
fig1.set_dpi(300)
ax = fig1.add_subplot(111)
ax.grid(True,which='both')
ax.hist(driveDistance,100)
ax.set_xlabel('Driven Distance in km')
ax.set_ylabel('Frequency')
fig1.savefig('figure1_distance.png')

这是结果文件:

5.5x3 英寸的图像

4

2 回答 2

9

您可以订购 save 方法以考虑 x-label 的艺术家。

这是通过 bbox_extra_artists 和紧凑布局完成的。结果代码将是:

import matplotlib.pyplot as plt
fig1 = plt.figure()
fig1.set_size_inches(5.5,4)
fig1.set_dpi(300)
ax = fig1.add_subplot(111)
ax.grid(True,which='both')
ax.hist(driveDistance,100)
xlabel = ax.set_xlabel('Driven Distance in km')
ax.set_ylabel('Frequency')
fig1.savefig('figure1_distance.png', bbox_extra_artists=[xlabel], bbox_inches='tight')
于 2013-03-18T16:34:24.180 回答
2

如果我用figsizeand初始化图形dpi,它对我有用kwargs

from numpy import random
from matplotlib import pyplot as plt
driveDistance = random.exponential(size=100)
fig1 = plt.figure(figsize=(5.5,4),dpi=300)
ax = fig1.add_subplot(111)
ax.grid(True,which='both')
ax.hist(driveDistance,100)
ax.set_xlabel('Driven Distance in km')
ax.set_ylabel('Frequency')
fig1.savefig('figure1_distance.png')

驾驶距离

于 2013-03-18T16:34:35.447 回答