Seaborn 图按字母顺序排列,而不是按数据帧顺序排列

Seaborn plots in alphabetical order, not in dataframe order

我有这样一个数据框:

当我想绘制最后两列时:

sns.lineplot(ax=ax2, x="ay", y="özel_2021",  data=okul_2021,
         color="g",label='özel okul',linewidth=3)

sns.lineplot(ax=ax2, x="ay", y="devlet_2021", data=okul_2021,
         color="r",label='devlet okulu',linewidth=3)

它不是按数据框中的顺序绘制,而是按字母顺序绘制。我该如何解决这个问题?

完整代码在这里:

我无法对此进行测试,但我认为您需要将列 ay 设置为 datetime 列:

okul_2021["ay"] = pd.to_datetime(okul_2021["ay"], format="%B")

这里的%B表示'month as locale’s full name'

添加sort=False;后问题解决

sns.lineplot(x="ay", y="özel_2021",  data=okul_2021,
         color="g",label='özel okul',linewidth=3,sort=False)

sns.lineplot(x="ay", y="devlet_2021", data=okul_2021,
         color="r",label='devlet okulu',linewidth=3,sort=False)