我正在尝试使用matplotlib绘制条形图。我的问题是我在列表中有一些“0”值,而matplotlib会吃掉其中的一些值,我如何确保它总是绘制所有值。
以下是代码:
counter_trim = counter[6:(len(counter)-6)]
pos = np.arange(len(Test_names[6:]))
width =.65
ax = plt.axes()
ax.set_ylabel('Number of failures')
ax.set_title('Distribution of ABT failures')
ax.set_xticks(pos + (width/2))
xtickNames= ax.set_xticklabels(Test_names[6:])
plt.setp(xtickNames, rotation=90, fontsize=10)
plt.bar(pos, counter_trim, width, color='b')
plt.tight_layout()
print 'Distribution plot can be found here:' +image_filepath
plt.savefig(image_filepath)
为了使事情更清楚,
这是pos的值:[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16]
和counter_trim的值:[0,0,0,1,17,6,0,14,32,11,0,0,2,0,1,0,0]
上面的代码跳过前3个和后2个零,但休息一切都是一样的!
任何想法如何避免这种情况?
答案 0 :(得分:2)
尝试这样的事情:
plt.xlim(0, len(counter_trim))
因为他没有绘制实际的条形图,我猜plot命令会省略这些条目。我无法在x上使用你的标签来尝试它,因为它们与文本没有关系,但这与标准轴一起工作。