【问题标题】:Plotting categorial data as a lineplot in seaborn在seaborn中将分类数据绘制为线图
【发布时间】:2021-01-07 01:05:46
【问题描述】:

我正在尝试复制 Seaborn 计数图能够执行的操作,但使用线图。下面是一个代码示例,显示了 countplot 正在做什么:

import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns

df=pd.DataFrame({
    'date' : ['2020-01-01', '2020-01-01', '2020-01-01', '2020-01-02', '2020-01-02', '2020-01-02', '2020-01-03'],
    'type' : ['A', 'B', 'B', 'B', 'A', 'A', 'C']
    })

sns.countplot(
    data=df, x=df['date'], hue=df['type'])
plt.show()

生成此图:

我想做同样的事情,但使用折线图,x= 日期,y= 该日期的类型数量,hue= 类型。

所以我的问题是……这可能吗?我已经尝试了多个不同的 Seaborn 图表(relplot、lineplot 等),但没有得到这个工作。

【问题讨论】:

标签: python pandas seaborn


【解决方案1】:

IIUC,您可以先获取每个日期的大小并使用groupby.size 键入,然后将lineplot 与转换后的数据框一起使用。

sns.lineplot(
    data=df.groupby(['date','type']).size().reset_index(name='count'), 
    x='date', y='count', hue='type')

【讨论】:

  • 这似乎已经做到了!此外,通过在 Seaborn 代码中添加 marker='o' ,为出现类型的每个日期在图表中添加一个点(如果未添加标记且类型为 0,则该行将停止)
猜你喜欢
  • 1970-01-01
  • 2016-12-18
  • 1970-01-01
  • 2017-11-17
  • 1970-01-01
  • 2021-12-19
  • 1970-01-01
  • 2020-06-03
  • 2019-04-16
相关资源
最近更新 更多