这可能是一个微不足道的问题,但我试图用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轴的右边获得了一个烦人的空白区域,如下图中的红色椭圆所示:
你知道如何删除它吗?提前谢谢!
答案 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()
输出:
现在用plt.xlim
使用bin数来绘制它来定义大小:
#plot it
ax = plt.subplot(111)
ax.bar(bin, data, width, color='r')
plt.xlim([0,bin.size])
plt.show()
结果:
可能有更好的方法,但这应该适合你。