【问题标题】:Best plot for 2 categorical and 1 quantitative variable over time matplotlib2 个分类变量和 1 个定量变量随时间变化的最佳图 matplotlib
【发布时间】:2021-10-03 13:07:30
【问题描述】:

目前,我有一个表格:

created_date    type    category    count
2020/10/10       A         C1        2
                           C2        3
                 B         C1        2
                           C2        8
2020/10/11       A         C1        3
... and so on

所以基本上我有一个按三个变量分组的 df,即时间、类型和类别。我想要的是一种将其绘制成具有最大信息量的单个图表(如果可能)的方法。

【问题讨论】:

  • 如果你只有 2 种类型和 2 种类别,总共 4 种组合,我会做 4 个累积计数总和的线图,x 轴是日期。如果你不太关心日期的顺序,你可以做4个计数直方图
  • 感谢您的回复。实际上,我确实关心日期的顺序,基本上,我想要 A 类型的信息,所有类别的累积计数和每个类别的单独计数是多少。我在考虑堆叠多条形图,这是一个不错的选择吗?

标签: pandas dataframe matplotlib plot


【解决方案1】:

你可以测试seaborn.lineplot

import seaborn as sns
sns.lineplot(data=your_df, x='created_date', y='count', hue='type', style='category')

使用这个虚拟数据作为输入:

df1 = pd.DataFrame({'created_date': np.repeat(pd.date_range('2020-10-10', '2020-12-31'), 4),
                    'type': np.tile(np.repeat(['A', 'B'], 2), 83),
                    'category': np.tile(['C1', 'C2'], 2*83),
                    'count': np.sin(np.arange(4*83)/80+np.tile([0,1,0,1], 83))+np.tile([0,0.2,0.4,0.5], 83)
                    
                   })
  created_date type category     count
0   2020-10-10    A       C1  0.000000
1   2020-10-10    A       C2  1.048159
2   2020-10-10    B       C1  0.424997
3   2020-10-10    B       C2  1.361136
4   2020-10-11    A       C1  0.049979
5   2020-10-11    A       C2  1.073575
6   2020-10-11    B       C1  0.474930
7   2020-10-11    B       C2  1.385468
8   2020-10-12    A       C1  0.099833
9   2020-10-12    A       C2  1.096808
...

这是它的外观:

【讨论】:

    猜你喜欢
    • 2021-05-22
    • 1970-01-01
    • 2011-03-26
    • 2023-03-08
    • 2017-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-04
    相关资源
    最近更新 更多