Диаграммы рассеяния (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 предоставляет мощные инструменты для создания информативных диаграмм рассеяния с цветовым кодированием по категориям. Использование списков цветов или цветовых карт, а также настройка легенды, позволяют эффективно визуализировать и анализировать данные. Экспериментируйте с различными параметрами и подходами, чтобы создавать наиболее подходящие визуализации для ваших задач. 🎉