Введение в добавление линий на точечные диаграммы в Matplotlib
Что такое точечная диаграмма и зачем она нужна
Точечная диаграмма (scatter plot) – это тип графика, отображающий данные в виде точек, где положение каждой точки определяется значениями двух переменных. Она используется для визуализации взаимосвязи между двумя наборами данных, обнаружения кластеров, выбросов и общей картины распределения.
Зачем добавлять линии на точечные диаграммы?
Добавление линий на точечные диаграммы позволяет:
- Выделить важные пороговые значения или целевые уровни.
- Разделить данные по категориям или группам.
- Отобразить тренды или закономерности в данных.
- Соединить определенные точки, чтобы подчеркнуть связь между ними.
- Визуально улучшить восприятие и понимание данных.
Обзор библиотеки Matplotlib
Matplotlib – это мощная и гибкая библиотека Python для создания графиков и визуализаций данных. Она предоставляет широкий набор инструментов для настройки различных аспектов графика, включая типы графиков, цвета, стили линий, подписи и многое другое. Matplotlib является основой для многих других библиотек визуализации, таких как Seaborn и Pandas.
Создание базовой точечной диаграммы
Импорт библиотеки Matplotlib
import matplotlib.pyplot as plt
Подготовка данных для точечной диаграммы (X и Y координаты)
В качестве примера возьмем данные об эффективности рекламных кампаний в интернете. X — бюджет кампании (в тысячах долларов), Y — количество привлеченных клиентов.
from typing import List, Tuple
def prepare_data() -> Tuple[List[float], List[float]]:
"""Generates sample data for a scatter plot.
Returns:
A tuple containing two lists: X coordinates and Y coordinates.
"""
x_coords: List[float] = [5, 7, 8, 7, 2, 17, 2, 9, 4, 11, 12, 9, 6]
y_coords: List[float] = [99, 86, 87, 88, 111, 86, 103, 87, 94, 78, 77, 85, 86]
return x_coords, y_coords
x_coords, y_coords = prepare_data()
Использование функции scatter()
для создания точечной диаграммы
plt.scatter(x_coords, y_coords)
plt.show()
Настройка внешнего вида: цвета, размеры, маркеры
plt.scatter(x_coords, y_coords, c='red', s=50, marker='o') # c - цвет, s - размер, marker - тип маркера
plt.show()
Добавление заголовка и подписей осей
plt.scatter(x_coords, y_coords, c='red', s=50, marker='o')
plt.title('Зависимость количества клиентов от бюджета рекламной кампании')
plt.xlabel('Бюджет (тыс. долларов)')
plt.ylabel('Количество клиентов')
plt.show()
Добавление горизонтальной линии на точечную диаграмму
Использование функции axhline()
Функция axhline()
добавляет горизонтальную линию на график.
Указание положения линии по оси Y
Параметр y
определяет положение линии по оси Y.
Настройка стиля линии: цвет, толщина, тип (пунктир и т.д.)
Можно использовать параметры color
, linewidth
, linestyle
для настройки стиля линии.
Примеры добавления горизонтальных линий для выделения пороговых значений
plt.scatter(x_coords, y_coords, c='red', s=50, marker='o')
plt.title('Зависимость количества клиентов от бюджета рекламной кампании')
plt.xlabel('Бюджет (тыс. долларов)')
plt.ylabel('Количество клиентов')
plt.axhline(y=90, color='blue', linestyle='--', linewidth=2) # Добавляем линию на уровне 90 клиентов
plt.show()
Добавление вертикальной линии на точечную диаграмму
Использование функции axvline()
Функция axvline()
добавляет вертикальную линию на график.
Указание положения линии по оси X
Параметр x
определяет положение линии по оси X.
Настройка стиля линии: цвет, толщина, тип (пунктир и т.д.)
Можно использовать параметры color
, linewidth
, linestyle
для настройки стиля линии.
Примеры добавления вертикальных линий для разделения данных по категориям
plt.scatter(x_coords, y_coords, c='red', s=50, marker='o')
plt.title('Зависимость количества клиентов от бюджета рекламной кампании')
plt.xlabel('Бюджет (тыс. долларов)')
plt.ylabel('Количество клиентов')
plt.axvline(x=8, color='green', linestyle=':', linewidth=3) # Добавляем линию на уровне бюджета 8 тыс. долларов
plt.show()
Добавление произвольной линии на точечную диаграмму
Использование функции plot()
для рисования линии
Функция plot()
может использоваться для рисования линий между произвольными точками.
Определение координат начала и конца линии
Необходимо определить координаты X и Y для начала и конца линии.
Настройка стиля линии: цвет, толщина, тип
Можно использовать параметры color
, linewidth
, linestyle
для настройки стиля линии.
Примеры: добавление линии тренда, соединение определенных точек
Предположим, мы хотим соединить точки с минимальным и максимальным бюджетом.
plt.scatter(x_coords, y_coords, c='red', s=50, marker='o')
plt.title('Зависимость количества клиентов от бюджета рекламной кампании')
plt.xlabel('Бюджет (тыс. долларов)')
plt.ylabel('Количество клиентов')
min_budget_index: int = x_coords.index(min(x_coords))
max_budget_index: int = x_coords.index(max(x_coords))
plt.plot([x_coords[min_budget_index], x_coords[max_budget_index]], [y_coords[min_budget_index], y_coords[max_budget_index]], color='black', linestyle='-', linewidth=1)
plt.show()
Комбинирование различных типов линий
Пример одновременного использования axhline()
, axvline()
и plot()
plt.scatter(x_coords, y_coords, c='red', s=50, marker='o')
plt.title('Зависимость количества клиентов от бюджета рекламной кампании')
plt.xlabel('Бюджет (тыс. долларов)')
plt.ylabel('Количество клиентов')
min_budget_index = x_coords.index(min(x_coords))
max_budget_index = x_coords.index(max(x_coords))
plt.axhline(y=90, color='blue', linestyle='--', linewidth=2)
plt.axvline(x=8, color='green', linestyle=':', linewidth=3)
plt.plot([x_coords[min_budget_index], x_coords[max_budget_index]], [y_coords[min_budget_index], y_coords[max_budget_index]], color='black', linestyle='-', linewidth=1)
plt.show()
Создание более сложных визуализаций с использованием нескольких линий
Комбинируя разные типы линий и их стили, можно создавать информативные и наглядные визуализации, которые помогут лучше понять данные.
Практические примеры и случаи использования
Пример 1: Визуализация данных о продажах с указанием целевого уровня
Отобразите данные о продажах за месяц и добавьте горизонтальную линию, показывающую целевой уровень продаж.
Пример 2: Анализ данных о температуре с выделением критических значений
Создайте точечную диаграмму, отображающую данные о температуре за день и добавьте горизонтальные линии, обозначающие критические значения (например, минимальную и максимальную допустимую температуру).
Пример 3: Определение кластеров в данных с помощью линий
Используйте линии для соединения точек, принадлежащих к одному кластеру, чтобы визуально выделить кластеры на точечной диаграмме.
Заключение
Краткое повторение основных моментов
В этой статье мы рассмотрели, как добавлять различные типы линий на точечные диаграммы в Matplotlib. Мы изучили функции axhline()
, axvline()
и plot()
и узнали, как настраивать стиль линий. Добавление линий позволяет выделить важные аспекты данных и улучшить восприятие графика.
Рекомендации по дальнейшему изучению Matplotlib
Для дальнейшего изучения Matplotlib рекомендуется ознакомиться с официальной документацией библиотеки, а также изучить примеры создания более сложных графиков и визуализаций.