如何在中设置特定的x轴标签以在pandas方框图上显示非字母顺序



进行以下csv输入(由于明显的原因,没有包括所有数据点(:

"Date","Production"
"1962-01",589
"1962-02",561
...
"1975-11",797
"1975-12",843

我正在尝试使用按月份分组的方式将以下数据格式化为方框图。但是没有显示01 02。。11 12,我想在1月、2月…在x标签上显示。

为此,我将数据放入一个数据帧中,并将"Date"转换为pd.To_datetime。然后将其设置为索引。

df['Date'] = pd.to_datetime(df['Date'])
df = df.set_index("Date")

然后,我创建了一个名为"Month"one_answers"Alph_Month"的新专栏

df["Month"] = df.index.month
df["Alph_Months"] = df.index.strftime('%B')

在这一点上,我有一个数据集,看起来如下:


Production    Month   Alph_Months
Date            
1962-01-01  589    1        January
1962-02-01  561    2        February
1962-03-01  640    3        March
1962-04-01  656    4        April

为了创建方框图,我尝试了以下操作:

df[['Production', 'Alph_Months']].boxplot(figsize=(16,6),by='Alph_Months', grid=True);

然而,这似乎是按字母顺序(四月、八月、十二月…(返回标签,而不是按一月、二月、三月等顺序返回。

有没有办法让boxplot按Month列按值排序,但按Alph_Months列设置标签值?

您可以尝试使用plt.xticks,假设您有以下行:

import matplotlib.pyplot as plt 

xticks函数允许您重命名图形上的x刻度,因此,如果您想根据月份重命名方框图刻度,可以执行以下操作:

plt.xticks([1, 2, 3, ...], ['Jan', 'Feb', ...])

你在绘制方框图后画了这条线。我注意到您正在为DataFrame使用boxplot函数。我不确定plt.xticks是否可以使用,但它肯定可以在seabornmatplotlib中绘制方框图

如果你想缩短一点,你可以用range(1, 13)代替[1,2,3,…]

最新更新