【问题标题】:python: plot two bars with the two list values with same x labels [duplicate]python:使用具有相同x标签的两个列表值绘制两个条形图[重复]
【发布时间】:2019-06-21 04:40:15
【问题描述】:

现在有两个列表值如下:

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'

【问题讨论】:

  • 它不同,使用相同的代码有错误:TypeError:ufunc'subtract'没有包含签名匹配类型dtype('
  • 有什么不同?该问题的第一个答案向您展示了如何在一个图中生成两个直方图——这不是您想要的吗?
  • 我觉得不一样。我的问题中的 x 标签是 str 列表,而不是数字。 Y 也是两个列表值的值。
  • @ThomasKühn:OP 想要一个条形图而不是直方图。某处有重复。我标记的副本是我认为正是 OP 想要的
  • @Bazingaa 哦,我明白了。当时我对plt.hist 的使用感到困惑。我应该如何最好地处理这个?如果我撤回我的最后一票,我不能重新投票以使其成为重复...

标签: matplotlib plot python-3.6


【解决方案1】:

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

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

【讨论】:

  • p1 错了,我已经更新了我的问题
  • p1 有什么问题?位置?如果是这样,p1 应该在什么位置?
  • Y 是 lst1、lst2 的值。 p1 有两个历史值是 17 和 25。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-07
  • 2018-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多