Matplotlib不会按照列表中出现的值的顺序打印这些值

时间:2019-04-15 20:47:45

标签: python matplotlib

我试图在Matplotlib条形图中以numpy数组形式打印值,但是Matplotlib坚持以错误的顺序打印它们。我已经重新排序了值和类别名称,并将它们存储在numpy数组中以保留其顺序,但是当我将它们提供给plt.bar()函数时,它坚持按其原始顺序打印它们。

我尝试打印了values_arr的值,并确认它们符合我想要的顺序,但是这不是钢筋显示的顺序。我尝试了plt.clf()plt.cla()摆脱原始值,但无济于事。

values_arr

返回

array([ 0.09651863, -0.05389129, -0.04672919, 0.01236926, -0.00995986,-0.00729804, -0.00545791, 0.00503968, 0.00485096, 0.00381371,-0.00244895, 0.00206346, 0.00099744, -0.00090517, 0.00078678,0.00029441, -0.00026074, 0.00021683])

category_arr

[1, 8, 5, 11, 3, 4, 12, 15, 6, 18, 14, 2, 10, 13, 17, 9, 7, 16]

但是当我将values_arr赋予plt.bar()函数时,我得到:

plt.cla()
width = 0.40

plt.bar(category_arr, values_arr, width)
plt.xticks=category_arr

但条形图以原始的1,2,3,...顺序显示类别和条形。 (我在输出图片中嵌入了一个链接)enter image description here

怎么了?为什么顺序会更改?

0 个答案:

没有答案