Я пытаюсь создать подзаголовок сетки 2 на 2 для построения следующего фрейма данных. Я хотел бы раскрасить линии на каждом подзаголовке по соответствующей категории группы, и легенда должна быть помечена этим именем группы. Это то, что у меня есть до сих пор, что дает мне 4 подсюжета в сетке 2 на 2. Однако все линии на конкретном подзаголовке отображаются одним цветом, а легенда - это просто имя столбца.
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib as mpl
font = {'family' : 'normal',
'weight' : 'bold',
'size' : 22}
mpl.rc('font', **font)
data = {'Date' : [2008, 2009, 2010, 2011, 2012,
2008, 2009, 2010, 2011, 2012,
2008, 2009, 2010, 2011, 2012,
2008, 2009, 2010, 2011, 2012],
'GRP' : ['M1', 'M1', 'M1', 'M1', 'M1',
'M2', 'M2', 'M2', 'M2', 'M2',
'M3', 'M3', 'M3', 'M3', 'M3',
'M4', 'M4', 'M4', 'M4', 'M4'],
'GR' : [2, 4, 6, 8, 10,
12, 14, 16, 18, 20,
22, 24, 26, 28, 20,
23, 34, 36, 38, 10],
'OR' : [12, 14, 16, 18, 29,
112, 114, 116, 118, 219,
222, 214, 216, 218, 229,
412, 414, 416, 418, 429],
'WR' : [23, 56, 69, 92, 115,
123, 156, 169, 192, 215,
223, 256, 269, 292, 315,
323, 356, 369, 392, 415],
'LR' : [42, 59, 90, 100, 12,
142, 159, 190, 110, 112,
242, 259, 290, 300, 212,
342, 359, 390, 400, 512]}
df = pd.DataFrame(data)
print (df)
fig, axes = plt.subplots(nrows = 2, ncols = 2,
sharex = True, sharey = False,
figsize = (10,10))
axes_list = [item for sublist in axes for item in sublist]
df.groupby('GRP').plot(kind = 'line', x = 'Date', y = ['GR', 'OR', 'WR', 'LR'],
subplots = True, drawstyle = 'default', marker = 'o',
ax = axes_list,
layout = (2,2))
plt.tight_layout()
plt.show()