Matplotlib: как раскрасить диаграмму рассеяния по значению

Matplotlib: как раскрасить диаграмму рассеяния по значению

Часто вы можете захотеть затенить цвет точек на диаграмме рассеяния matplotlib на основе какой-то третьей переменной. К счастью, это легко сделать с помощью функции matplotlib.pyplot.scatter() , которая имеет следующий синтаксис:

matplotlib.pyplot.scatter (x, y, s = нет, c = нет, cmap = нет)

куда:

  • x: Массив значений, используемых для координат оси X на графике.
  • y: Массив значений, используемых для координат оси Y на графике.
  • s: Размер маркера.
  • c: Массив значений для цветов маркеров.
  • cmap: карта цветов для использования в графике.

Вы можете использовать c , чтобы указать переменную, которая будет использоваться для значений цвета, и вы можете использовать cmap , чтобы указать фактические цвета, которые будут использоваться для маркеров на диаграмме рассеивания.

В этом руководстве объясняется несколько примеров использования этой функции на практике.

Пример 1: цвет точек диаграммы рассеяния по значению

Предположим, у нас есть следующие Pandas DataFrame:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'x': [25, 12, 15, 14, 19, 23, 25, 29],
 'y': [5, 7, 7, 9, 12, 9, 9, 4],
 'z': [3, 4, 4, 5, 7, 8, 8, 9]})

#view DataFrame
df

 x y z
0 25 5 3
1 12 7 4
2 15 7 4
3 14 9 5
4 19 12 7
5 23 9 8
6 25 9 8
7 29 4 9

В следующем коде показано, как создать диаграмму рассеивания с использованием карты оттенков серого и значений переменной z в качестве оттенка для карты цветов:

import matplotlib.pyplot as plt

#create scatterplot
plt.scatter (df.x, df.y, s=200, c=df.z, cmap='gray')
Цвет диаграммы рассеяния Matplotlib по значению

Для этого конкретного примера мы выбрали цветовую карту «серый», но вы можете найти полный список цветовых карт, доступных для использования, в документации по цветовой карте matplotlib .

Например, вместо этого мы могли бы указать «Зеленые» в качестве цветовой карты:

plt.scatter (df.x, df.y, s=200, c=df.z, cmap='Greens') 
Диаграмма рассеяния Matplotlib с cmap

По умолчанию маркеры с большими значениями аргумента c затемняются темнее, но вы можете изменить это, просто добавив _r к имени cmap:

plt.scatter (df.x, df.y, s=200, c=df.z, cmap='Greens_r') 
Обратный масштаб цветовой карты Matplotlib

Пример 2. Цвет точек на диаграмме рассеяния по категориям

Предположим, у нас есть следующие Pandas DataFrame:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'x': [25, 12, 15, 14, 19, 23, 25, 29],
 'y': [5, 7, 7, 9, 12, 9, 9, 4],
 'z': ['A', 'A', 'B', 'B', 'B', 'C', 'C', 'C']})

#view DataFrame
df

 x y z
0 25 5 A
1 12 7 A
2 15 7 B
3 14 9 B
4 19 12 B
5 23 9 C
6 25 9 C
7 29 4 C

В следующем коде показано, как создать диаграмму рассеяния, используя переменную z для окрашивания маркеров в зависимости от категории:

import matplotlib.pyplot as plt

groups = df.groupby('z')
for name, group in groups:
 plt.plot (group.x, group.y, marker='o', linestyle='', markersize=12, label=name)

plt.legend()
Диаграмма рассеяния Matplotlib, окрашенная по категориям

Вы можете найти больше руководств по Python здесь .

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.