matplotlib:如果我设置了图高度,则x传奇被切断

时间:2013-03-18 16:23:18

标签: python matplotlib plot

我正在尝试在python上使用fig1.set_size_inches(5.5,3)设置数字大小,但是该图产生了一个无花果,其中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')

这是结果文件:

image with 5.5x3 inch

2 个答案:

答案 0 :(得分:8)

您可以订购保存方法,以考虑x标签的艺术家。

这是通过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')

答案 1 :(得分:2)

如果我将figsizedpi初始化为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')

driveDistance