Вы можете использовать следующий синтаксис, чтобы добавить легенду к диаграмме рассеяния в Matplotlib:
import matplotlib.pyplot as plt
from matplotlib. colors import ListedColormap
#define values, classes, and colors to map
values = [0, 0, 1, 2, 2, 2]
classes = ['A', 'B', 'C']
colors = ListedColormap(['red', 'blue', 'purple'])
#create scatterplot
scatter = plt.scatter (x, y, c=values, cmap=colors)
#add legend
plt.legend( \* scatter. legend_elements ())
В следующих примерах показано, как использовать этот синтаксис на практике.
Пример 1. Легенда диаграммы рассеяния со значениями
В следующем примере показано, как создать диаграмму рассеивания, в которой легенда отображает значения:
import matplotlib.pyplot as plt
from matplotlib. colors import ListedColormap
#define data
x = [3, 4, 4, 6, 8, 9]
y = [12, 14, 17, 16, 11, 13]
#define values, classes, and colors to map
values = [0, 0, 1, 2, 2, 2]
classes = ['A', 'B', 'C']
colors = ListedColormap(['red', 'blue', 'purple'])
#create scatterplot
scatter = plt.scatter (x, y, c=values, cmap=colors)
#add legend with values
plt.legend( \* scatter. legend_elements ())
Пример 2. Легенда диаграммы рассеяния с классами
В следующем примере показано, как создать диаграмму рассеивания, в которой легенда отображает имена классов:
import matplotlib.pyplot as plt
from matplotlib. colors import ListedColormap
#define data
x = [3, 4, 4, 6, 8, 9]
y = [12, 14, 17, 16, 11, 13]
#define values, classes, and colors to map
values = [0, 0, 1, 2, 2, 2]
classes = ['A', 'B', 'C']
colors = ListedColormap(['red', 'blue', 'purple'])
#create scatterplot
scatter = plt.scatter (x, y, c=values, cmap=colors)
#add legend with class names
plt.legend(handles=scatter. legend_elements ()[ 0 ], labels=classes)
Обратите внимание, что в этой легенде отображаются имена классов, которые мы указали (A, B, C), а не значения (0, 1, 2), которые мы указали.
Дополнительные ресурсы
Как увеличить размер графика в Matplotlib
Как настроить позицию заголовка в Matplotlib
Как установить диапазоны осей в Matplotlib