繁体   English   中英

使用 seaborn 在 x 轴上绘制带有日期数据的多列

[英]plotting multiple columns with date data on the x-axis using seaborn

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

我想 plot y 轴上的标签和 x 轴上所有列的相应日期。 当我使用 plot 时,它看起来还可以,但是当我开始添加其他列时,它会覆盖新数据点并错过 x 轴刻度。

有谁知道这是什么原因造成的?

这是一个示例

代码 2011 2012 2013 2014 2015 2016 年
A1 2011 年 8 月 1 日 2012 年 7 月 20 日 2013 年 7 月 10 日 2014 年 6 月 28 日 2015 年 6 月 18 日 2016 年 6 月 6 日
A2 2011 年 8 月 1 日 2012 年 7 月 20 日 2013 年 7 月 10 日 2014 年 6 月 28 日 2015 年 6 月 18 日 2016 年 6 月 6 日
A3 2013 年 7 月 10 日 2014 年 6 月 29 日 2015 年 6 月 18 日 2016 年 6 月 6 日
A4 2013 年 7 月 10 日 2014 年 6 月 28 日 2015 年 6 月 18 日 2016 年 6 月 6 日
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')

Seaborn 对于长格式数据更强。 所以你应该融化然后plot:

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

Output:

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM