Matplotlib Plot X, Y Line Plot Multiple Columns 固定 X 轴

Matplotlib Plot X, Y Line Plot Multiple Columns Fixed X Axis

我正在尝试为(12 月、1 月、2 月)绘制 x 轴强制为 12、1、2 的 df,但我不知道如何执行此操作。 Matplot 一直想按 1,2,12 的顺序绘制 x 轴。该示例的我的 DF (analogs_re) 部分列如下所示:

   Month      2000      1995      2009      2014      1994      2003  
0     12 -0.203835  0.580590  0.233124  0.490193  0.605808  0.016756   
1      1 -0.947029 -1.239794 -0.977004  0.207236  0.436458 -0.501948   
2      2 -0.059957  0.708626  0.111840  0.422534  1.051873 -0.149000

我需要按 12、1、2 顺序用 x 轴绘制的 y 数据,如“月份”列中所示。

我的代码:

fig, ax = plt.subplots()
#for name, group in groups:
analogs_re.set_index('Month').plot(figsize=(10,5),grid=True)
analogs_re.plot(x='Month', y=analogs_re.columns[1:len(analogs_re.columns)])

当您将 Month 设置为 x-axis 时,显然它将按数字顺序(0、1、2、3 ...)绘制它,因为顺序序列不会开始有 12,然后 1,然后 2,...

诀窍是使用原始索引作为 x-axis,然后使用月份编号标记这些刻度:

fig, ax = plt.subplots()
analogs_re.drop(columns='Month').plot(figsize=(10,5), grid=True, ax=ax)
ax.set_xticks(analogs_re.index)
ax.set_xticklabels(analogs_re["Month"])