python:用两个带有相同x标签的列表值绘制两个条形图

时间:2019-01-28 07:51:22

标签: matplotlib plot python-3.6

现在有两个列表值,如下所示:

lst1 = [17, 24, 16, 3, 9, 10, 8, 7, 6]
lst2 = [25, 30, 29, 6, 7, 10, 1, 2, 8]

和x标签:

lst_p =  ['p1', 'p2', 'p3', 'p4', 'p5', 'p6', 'p7', 'p8', 'p9']

我想基于相同的x标签绘制带有不同颜色的lst1和lst2的条形图。

我尝试的代码:

width = 0.5
plt.hist((lst1, lst2),label = ("data1", "data2")) # A bar chart
plt.legend()
plt.xticks(lst_p)

但是有错误:

AttributeError:'NoneType'对象没有属性'seq'

1 个答案:

答案 0 :(得分:0)

xticks() documentation中所述,firsts参数是刻度位置。标签只是第二个参数。因此,您还必须将xtick位置传递给函数调用,它才能起作用

plt.xticks(plt.gca().get_xaxis().get_ticklocs(), lst_p)

enter image description here