【发布时间】:2021-03-27 16:22:01
【问题描述】:
我正在绘制我的数据集(英格兰和威尔士的死亡率与地区),X 轴上的日期按字母顺序排列。它将于 4 月 6 日、4 月 7 日、...、2 月 6 日、2 月 7 日、...、Sep-13、Sep-14 进行。
我希望它们按时间顺序排列(就像在我的数据集中一样)有没有办法关闭强制排序?我正在为这个情节使用 matplot lib 和 seaborn。
另外,如果有人知道写出这段代码而不重复代码 13 次的方法,我会很高兴听到它。
我的代码如下
plt.figure(figsize=(48,12))
sns.lineplot(data=Regional,x='Date',y='England and Wales')
sns.lineplot(data=Regional,x='Date',y='England')
sns.lineplot(data=Regional,x='Date',y='North East')
sns.lineplot(data=Regional,x='Date',y='North West')
sns.lineplot(data=Regional,x='Date',y='Yorkshire and the Humber')
sns.lineplot(data=Regional,x='Date',y='East Midlands')
sns.lineplot(data=Regional,x='Date',y='West Midlands')
sns.lineplot(data=Regional,x='Date',y='East of England')
sns.lineplot(data=Regional,x='Date',y='Greater London')
sns.lineplot(data=Regional,x='Date',y='South East')
sns.lineplot(data=Regional,x='Date',y='South West')
sns.lineplot(data=Regional,x='Date',y='Wales')
sns.lineplot(data=Regional,x='Date',y='Non Residents')
plt.legend(['England and Wales','England','North East','North West','Yorkshire and the Humber','East Midlands','West Midlands','East of England','Greater London','South East','South West','Wales','Non Residents'])
【问题讨论】:
-
在绘图之前将您的日期转换为日期时间类型。
-
您的日期可能实际上不是日期,而是字符串。此外,您应该融合您的数据并将生成的区域列作为您的“色调”传递给对
lineplot的单个调用 -
为什么不使用 Matplotlib?除非你强制它在幕后进行排序
-
如果您将日期输入ISO 8601 format,它们将正确排序。
标签: python pandas matplotlib time-series seaborn