1

我正在尝试使用 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 个零,但是其余的都是一样的!

任何想法如何避免这种情况?

4

1 回答 1

2

尝试这样的事情:

plt.xlim(0, len(counter_trim))

由于他没有绘制实际的条形图,我猜 plot 命令省略了这些条目。我无法在 x 上使用您的标签进行尝试,因为它们与文本无关,但这适用于标准轴。

于 2013-03-19T14:40:17.597 回答