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

#createDataFrame
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

#createDataFrame
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 тут .

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *