【问题标题】:plotting multiple columns with date data on the x-axis using seaborn使用 seaborn 在 x 轴上绘制带有日期数据的多列
【发布时间】:2021-06-17 03:27:38
【问题描述】:

我有一个 pandas 数据框,其中包含多个包含日期的列和一个包含标签(字符串)的列。

我想在 y 轴上绘制所有列的标签,在 x 轴上绘制相应的日期。当我绘制一个时,它看起来不错,但是当我开始添加其他列时,它会覆盖新数据点并错过 x 轴刻度。

有人知道这是什么原因吗?

这是一个示例

Code 2011 2012 2013 2014 2015 2016
A1 8/1/2011 7/20/2012 7/10/2013 6/28/2014 6/18/2015 6/6/2016
A2 8/1/2011 7/20/2012 7/10/2013 6/28/2014 6/18/2015 6/6/2016
A3 7/10/2013 6/29/2014 6/18/2015 6/6/2016
A4 7/10/2013 6/28/2014 6/18/2015 6/6/2016
df = pd.read_csv('dates.csv', parse_dates=['2011', '2012', '2013', '2014', '2015', '2016'])
fig, ax = plt.subplots(figsize=(10, 6))

sns.stripplot(pd.to_datetime(df['2012']), df['Code'], color = 'r')
sns.stripplot(pd.to_datetime(df['2013']), df['Code'], color = 'g')
sns.stripplot(pd.to_datetime(df['2014']), df['Code'], color = 'k')

plt.xticks(rotation='vertical')

【问题讨论】:

    标签: python pandas datetime seaborn


    【解决方案1】:

    Seaborn 在长格式数据方面更强大。所以你应该融化然后绘图:

    ax = sns.stripplot(data=df.melt('Code', value_name='date', var_name='year'), 
                       x='date', y='Code', hue='year')
    

    输出:

    【讨论】:

      猜你喜欢
      • 2017-05-14
      • 1970-01-01
      • 2020-09-03
      • 2017-12-30
      • 1970-01-01
      • 2011-06-18
      • 2020-12-31
      • 1970-01-01
      • 2021-09-27
      相关资源
      最近更新 更多