假设我有一个变量df
,它包含一些在pandas中看起来像这样的数据
Date Number Letter
2017-10-31 2 B
2019-08-31 1 A
2021-11-30 3 C
...
我想用seaborn把它画出来,所以我用了一些像这样的代码
sb.lineplot(data=df, x=Date, y=Number)
plt.show()
我得到一个有序的折线图,看起来像这样x1c 0d1x
但是,我希望让y轴标记标签,以保留数字列的数字顺序,但显示为字母列的标签。例如,与上面的y轴为10 - 17不同,我希望y轴读作j-t。
有没有一种方法可以通过sb.lineplot参数来实现,或者我需要另一种方法?
2条答案
按热度按时间x6yk4ghg1#
IIUC,您可以使用
FixedLocator
和FixedFormatter
:输出:
wfauudbj2#
'Letter'
更简单。pd.Categorical
设置'Letter'
列。categories=sorted(df.Letter, reverse=True)
,设置reverse=False
,使A
位于y轴的顶部。python 3.11.3
、pandas 2.0.2
、matplotlib 3.7.1
、seaborn 0.12.2
中测试**