对于一个课程项目,我正在绘制条形图。我有一个带有一堆标签的python列表(偶数,奇数,正方形,3的幂等)和一个numpy数组,用于保存与每个标签相关的概率(与标签列表的顺序相同)。当我绘制我的图表时
labels = ["even", "odd", "squares", "powers of 3"]
fig, ax = plt.subplots()
ax.barh(labels, probability)
它将条形图值按反向字母顺序排列,因此它不是按顺序排序,而是奇数,正方形,它是有序的正方形,3的幂,奇数,偶数等。我怎么能保持我的情节与我的顺序相同列出?
答案 0 :(得分:1)
Axes.barh
中的第一个参数是条形图的垂直坐标,因此您需要类似
fig, ax = plt.subplots()
y = np.arange(len(labels))
ax.barh(y, probability)
ax.set_yticks(y)
ax.set_yticklabels(labels)
这样,条形码将按照列表的顺序从上到下排序。如果你想要反过来,你可以简单地做
fig, ax = plt.subplots()
y = np.arange(len(labels))
ax.barh(y, probability)
ax.set_yticks(y)
ax.set_yticklabels(labels)
ax.invert_yaxis()
代替。
编辑:鉴于@ExitanceOfBeingErnest的评论,我应该注意上面是用matplotlib
2.1.1测试的。