条形图中恼人的白色空间(matplotlib,Python)

时间:2013-11-26 10:30:43

标签: python matplotlib bar-chart

这可能是一个微不足道的问题,但我试图用matplotlib绘制条形图,并在x轴上绘制旋转文本。 我正在使用的代码如下所示:

fig = plt.figure()

x_labels_list = []

for i in range(0, pow(2, N)):
    x_labels_list.append(str(f(i)))  # The function f() converts i to a binary string

ax = plt.subplot(111)
width = 1.0
bins = map(lambda x: x-width, range(1,pow(2,N)+1))
ax.bar(bins, my_data, width=width)
ax.set_xticks(map(lambda x: x-width/2, range(1,pow(2,N)+1)))
ax.set_xticklabels(x_labels_list, rotation=90, rotation_mode="anchor", ha="right")

它工作得很好,但是我在x轴的右边获得了一个烦人的空白区域,如下图中的红色椭圆所示:

enter image description here

你知道如何删除它吗?提前谢谢!

1 个答案:

答案 0 :(得分:28)

尝试使用分档数量调用plt.xlim(),例如

plt.xlim([0,bins.size])

以下是一个例子:

#make some data
N = 22
data = np.random.randint(1,10,N)
bin = np.arange(N)  
width = 1

#plot it
ax = plt.subplot(111)
ax.bar(bin, data, width, color='r')
plt.show()

没有plt.xlim()输出:

no xlim

现在用plt.xlim使用bin数来绘制它来定义大小:

#plot it
ax = plt.subplot(111)
ax.bar(bin, data, width, color='r')
plt.xlim([0,bin.size])
plt.show()

结果:

with xlim

可能有更好的方法,但这应该适合你。