Как создать диаграмму рассеяния Matplotlib с цветом по категориям и интерактивной легендой?

Диаграммы рассеяния (scatter plots) – мощный инструмент визуализации данных, позволяющий выявлять взаимосвязи между переменными. Matplotlib, будучи краеугольным камнем Python для визуализации, предоставляет широкие возможности для создания таких диаграмм. В этой статье мы рассмотрим, как создавать диаграммы рассеяния с цветовым кодированием по категориям и интерактивной легендой, что значительно облегчает интерпретацию данных.

Подготовка к работе: Установка и импорт библиотек

Установка Matplotlib и необходимых зависимостей

Убедитесь, что у вас установлен Matplotlib. Если нет, установите его с помощью pip:

pip install matplotlib pandas numpy

Импорт библиотеки Matplotlib и других полезных библиотек (Pandas, NumPy)

Импортируем необходимые библиотеки:

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

Создание базовой диаграммы рассеяния

Основы: построение простой диаграммы рассеяния с использованием plt.scatter()

Функция plt.scatter() – основной инструмент для создания диаграмм рассеяния в Matplotlib.

Добавление данных и настройка базовых параметров (размер точек, маркеры)

Пример простого графика:

x = np.random.rand(50)
y = np.random.rand(50)
plt.scatter(x, y)
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Базовая диаграмма рассеяния')
plt.show()

Можно настроить размер точек (s), маркер (marker), прозрачность (alpha) и другие параметры.

plt.scatter(x, y, s=50, marker='o', alpha=0.7)

Цветовое кодирование по категориям

Методы присвоения цветов точкам в зависимости от категории (использование списков цветов, цветовых карт)

Для цветового кодирования по категориям можно использовать различные подходы:

  • Списки цветов: Присваивание цвета каждой категории вручную.

  • Цветовые карты (colormaps): Использование градиента цветов для представления категорий.

Примеры кода с разными подходами к цветовому кодированию и объяснение каждого подхода

Пример 1: Использование списков цветов

Реклама
data = pd.DataFrame({'x': np.random.rand(100),
                     'y': np.random.rand(100),
                     'category': np.random.choice(['A', 'B', 'C'], 100)})

colors = {'A': 'red', 'B': 'green', 'C': 'blue'}

for category, group in data.groupby('category'):
    plt.scatter(group['x'], group['y'], color=colors[category], label=category)

plt.legend()
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Диаграмма рассеяния с цветовым кодированием (списки цветов)')
plt.show()

Пример 2: Использование цветовой карты

data['category_id'] = data['category'].astype('category').cat.codes

plt.scatter(data['x'], data['y'], c=data['category_id'], cmap='viridis')
plt.colorbar(label='Category ID')

plt.xlabel('X')
plt.ylabel('Y')
plt.title('Диаграмма рассеяния с цветовым кодированием (цветовая карта)')
plt.show()

cmap определяет используемую цветовую карту. viridis – одна из наиболее популярных.

Добавление и настройка легенды

Создание легенды для категорий: использование plt.legend()

В первом примере мы уже использовали plt.legend() для добавления легенды. Важно убедиться, что каждая категория имеет связанный вызов plt.scatter() с параметром label.

Настройка легенды: изменение положения, заголовка и форматирования

Легенду можно настроить:

  • Положение: loc параметр (например, loc='upper right', loc='best').

  • Заголовок: title параметр.

  • Форматирование: Изменение размера шрифта, цвета текста и т.д.

plt.legend(loc='upper right', title='Категории', fontsize='small')

Заключение

Matplotlib предоставляет мощные инструменты для создания информативных диаграмм рассеяния с цветовым кодированием по категориям. Использование списков цветов или цветовых карт, а также настройка легенды, позволяют эффективно визуализировать и анализировать данные. Экспериментируйте с различными параметрами и подходами, чтобы создавать наиболее подходящие визуализации для ваших задач. 🎉


Добавить комментарий