【问题标题】:Plot line chart for each row in python在python中为每一行绘制折线图
【发布时间】:2019-11-18 19:38:04
【问题描述】:

我有 20 列,我在两列上使用了 groupby,然后我得到了这个。

data.groupby(['id','date']).count()['dx'].iplot()

 id     date                    
 K01   2019-04-04 12:47:31.610    1
       2019-04-05 13:52:50.923    1
       2019-04-06 11:29:55.357    1
       2019-04-07 19:08:17.370    1
       2019-04-08 10:58:02.710    1
       2019-04-08 12:07:15.477    1
       2019-04-08 15:23:48.850    1
                                 ..
 K5    2019-06-24 21:06:50.563    1
       2019-06-25 17:07:49.880    1
       2019-06-25 19:44:18.720    1
       2019-06-26 05:46:45.343    1

Name: id, Length: 99466, dtype: int64

我有多个 id,你可以看到长度太多了。 我如何为每个 id 绘制图表? 日期为x轴,计数为y轴,id为标题?

我尝试使用 iplot - plotly,结果证明是一个错误。

我可以用什么其他类型的情节来描绘所有的身份?

【问题讨论】:

  • 你有没有尝试过?例如,data.groupby(['id','date']).count()['dx'].plot() 做了什么?
  • 我也试过matplotlb,也没有达到目的'
  • 您需要添加用于绘图的代码。另外,您是否尝试过我在第一条评论中建议的代码?
  • 出现类似的图表。就像我添加的 iplot 一样
  • 您需要包含用于生成绘图的代码。你在使用直方图吗?

标签: python pandas numpy matplotlib seaborn


【解决方案1】:

您只需要创建一个数据框,其中每一列都是您要绘制的系列。

plt.tight_layout()
data.groupby(['id','date']).count()['dx'].unstack('id', fill_value=0).plot()

在这种情况下,每个系列都由 id 索引(例如“K01”、“K5”),因此您只需拆开数据框并绘制它。

但是,如果 id 的数量太大,情节可能难以阅读。使用绘图选项subplots=True 可能会有所帮助;否则,我会考虑另一种图表。

【讨论】:

    猜你喜欢
    • 2021-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-31
    相关资源
    最近更新 更多