如何按月份升序对x轴进行排序? [英] How do I sort my x-axis by ascending month order?

查看:35
本文介绍了如何按月份升序对x轴进行排序?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所以我有一个将索引作为DateTime对象的DataFrame。 我已经创建了一个新列来指示DataFrame中的每个"顺风车"位于哪个月:

import numpy as np
import datetime as dt
from datetime import datetime    
months = df.index.to_series().apply(lambda x:dt.datetime.strftime(x, '%b %Y')).tolist()
df['months'] = months
df1 = df[['distance','months']]

这提供了:

当我尝试使用以月份为x轴的海运将其绘制到折线图上时,它会按字母顺序对其进行排序,从4月开始,然后是8月,依此类推。

l = sns.lineplot(x='months',y='distance',data=df1)
plt.xticks(rotation=45)

我真的不明白它为什么要这样做,因为在我使用的数据框中,月份是根据它们的月份按升序排序的。有没有办法让我的x轴从2018年1月开始,到2019年7月结束?

推荐答案

x坐标必须是数字。当您提供字符串数组时,Seborn会自动按字母顺序对其排序。您想要的内容可以通过sort=False(默认为True)实现:

# True or omitted
sns.lineplot(x='month', y='distance', data=df1, sort=True)

# Set to False to keep the original order in your DataFrame
sns.lineplot(x='month', y='distance', data=df1, sort=False)

这篇关于如何按月份升序对x轴进行排序?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆