Python: 手动排序X轴值

Python: Sorting X axis value manually

我正在尝试对图表上的 x 轴进行排序,因为我认为由于数据框中的数据未正确排序,我的 x 轴未按升序排列。我在数据框中看到的是“1,10,11,12 然后 2,3,4...” 有没有办法将我的数据分类为 1,2,3,4,5,6 或更具体地说,我想先按月份排序,然后按年份排序,最后按目的地排序。代码和图片如下。

q3a =  sqldf("SELECT Month, Year, TotalFlights, Month_Year, Destination FROM q3 
WHERE Destination = 'ABE' OR Destination = 'CSG' OR Destination = 'HLN' OR Destination = 'LAW' 
GROUP BY Destination, Year, Month 
ORDER BY Destination ASC, Year ASC, Month ASC")
pd.DataFrame(q3a)

我的图表代码:

g = sns.FacetGrid(data=q3a, col="Destination", col_wrap=2, height=6)
g = g.map(plt.plot, "Month_Year", "TotalFlights", marker=".")
plt.xticks(rotation=45)

编辑:抱歉,我以为您是按月订购的。

Month_Year 是 str 类型而不是 int 类型。如果您将列变量更改为数字类型,您的代码应该按照您希望的方式进行排序。但是 Month_Year 中的数据不完全是数字...

你能先按年列排序,然后按月列排序吗?否则,一个 hacky 解决方案是创建一个新列,其中 data = month + 12*year - 1 并从最低值到最高值排序。