【问题标题】:Plot multiple lines in a line graph using matplotlib使用 matplotlib 在折线图中绘制多条线
【发布时间】:2017-01-02 08:01:10
【问题描述】:

我正在尝试绘制一个包含多条线的折线图,每组一条。 X 轴是小时,y 轴是计数。 由于数据框中有 3 个组,因此我将在单个折线图中有 3 条线。 这是我使用的代码,但不确定我哪里出错了。

Group      Hour           Count
 G1          1             40
 G2          1             300
 G1          2             400
 G2          2             80
 G3          2             1211

使用的代码:

fig, ax = plt.subplots()
labels = []
for key, grp in df1.groupby(['Group']):
  ax = grp.plot(ax=ax, kind='line', x='x', y='y', c=key)
  labels.append(key)
lines, _ = ax.get_legend_handles_labels()
ax.legend(lines, labels, loc='best')
plt.show()

【问题讨论】:

  • 如何从 5 个数据点得到 3 行?你的意思是2线和1点? G3只有一个条目..
  • 每组一行(G1、G2 和 G3)
  • 如何获得 G3 的线,因为您需要两个点来形成线图?

标签: pandas matplotlib charts line


【解决方案1】:

您可以使用df.pivot 并为自己节省一些代码

df.pivot('Hour', 'Group', 'Count').plot(kind='line', marker='o')

G3 被绘制为一个点,因为只有一个点(2 小时,1211 计数)与之关联。

【讨论】:

  • 有没有办法设置y轴点之间的间隔范围?就像在 y 轴上一样,我需要从 0 开始将数字递增 50
  • 一种方法是将yticks=np.arange(0, df['Count'].max(), 50) 作为参数添加到plot。其他方法已在其他 stackoverflow 帖子中更详细地介绍。例如,stackoverflow.com/questions/12608788/…
猜你喜欢
  • 1970-01-01
  • 2019-10-27
  • 1970-01-01
  • 2021-11-01
  • 2017-05-14
  • 2019-10-17
  • 1970-01-01
  • 2014-07-27
  • 1970-01-01
相关资源
最近更新 更多