如何删除条形图中条形之间的x轴间距?

时间:2017-08-02 13:01:54

标签: python matplotlib bar-chart

更改宽度以使条形更小后,它已移至两侧。如何删除它们之间的间距。理想情况下,我想在中间居中,但文档中似乎没有为其设置的参数。手动缩放图片也不会减少这种差距。

import numpy as np
import matplotlib.pyplot as plt

objects = ('bar1', 'bar2')
y_pos = np.arange(len(objects))
performance = [2,6] 
stds=[0.3,0.5]
plt.bar(y_pos, performance, 0.3, align='center', yerr=stds,capsize=5, alpha=0.5)
plt.xticks(y_pos, objects)
plt.ylabel('Time (seconds)')
plt.show()

enter image description here

1 个答案:

答案 0 :(得分:4)

列表y_pos将bar的位置设置为0和1,然后将设置的宽度设置为.3,间隙为0.7。

您必须使用特定值替换y_pos才能使您的条形图彼此靠近:第一个条形图位于width/2位置,第二个条形图位于1.5 * width。 然后,您必须使用xlim方法选择x轴的最佳限制,以使条形中心。

import numpy as np
import matplotlib.pyplot as plt

objects = ('bar1', 'bar2')
w = 0.3
y_pos = (w/2.,w*1.5)
performance = [2,6] 
stds=[0.3,0.5]
plt.bar(y_pos, performance, width=w, align='center', yerr=stds,capsize=5, alpha=0.5)
plt.gca().set_xlim([-1.,1.5])
plt.xticks(y_pos, objects)
plt.ylabel('Time (seconds)')
plt.show()

我希望有更灵活和优雅的解决方案。 enter image description here