Я создал фрейм данных с датами и двумя значениями, который выглядит следующим образом:
Date Year Level Price
2008-01-01 2008 56 11
2008-01-03 2008 10 12
2008-01-05 2008 52 13
2008-02-01 2008 66 14
2008-05-01 2008 20 10
..
2009-01-01 2009 12 11
2009-02-01 2009 70 11
2009-02-05 2009 56 12
..
2018-01-01 2018 56 10
2018-01-11 2018 10 17
..
Я могу нанести их по цветам на их год, создав столбец по годам с df['Year'] = df['Date'].dt.year
но я также хочу иметь меток на каждом Годе в легенде.
Мой код для построения графика по годам выглядит следующим образом:
colors = ['turquoise','orange','red','mediumblue', 'orchid', 'limegreen']
fig = plt.figure(figsize=(15,10))
ax = fig.add_subplot(111)
ax.scatter(df['Price'], df['Level'], s=10, c=df['Year'], marker="o", label=df['Year'], cmap=matplotlib.colors.ListedColormap(colors))
plt.title('Title', fontsize=16)
plt.ylabel('Level', fontsize=14)
plt.xlabel('Price', fontsize=14)
plt.legend(loc='upper left', prop={'size': 12});
plt.show()
Как настроить метки в легенде для отображения года?То, как я это сделал, это просто использование столбца Year, но это, очевидно, просто дает мне такие результаты:
