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)
我有这样一个数据框:
当我想绘制最后两列时:
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)