Введение в точечные диаграммы Matplotlib
Что такое точечная диаграмма и когда она полезна
Точечная диаграмма (scatter plot) — это тип графика, который отображает данные в виде точек на декартовой плоскости. Каждая точка представляет собой наблюдение с двумя или более переменными, где положение точки определяется значениями этих переменных. Точечные диаграммы особенно полезны для визуализации взаимосвязей между двумя или более непрерывными переменными, выявления кластеров, выбросов и общих тенденций в данных. В контексте интернет-маркетинга, например, точечные диаграммы могут использоваться для анализа корреляции между бюджетом рекламной кампании и количеством конверсий, между позицией ключевого слова в поисковой выдаче и CTR, или между временем загрузки страницы и показателем отказов.
Обзор функции scatter()
из Matplotlib
В библиотеке Matplotlib функция scatter()
предназначена для создания точечных диаграмм. Она предоставляет широкие возможности для настройки внешнего вида точек, включая их размер, цвет, форму и прозрачность. Функция scatter()
позволяет отображать не только двумерные данные, но и кодировать дополнительные измерения с помощью различных визуальных атрибутов, таких как размер и цвет точек.
Основы использования функции scatter()
Базовый синтаксис функции scatter()
Базовый синтаксис функции scatter()
выглядит следующим образом:
import matplotlib.pyplot as plt
from typing import List, Union
def create_scatter_plot(
x: List[float],
y: List[float],
s: Union[List[float], float] = 20,
c: Union[List[str], str] = 'red',
marker: str = 'o',
alpha: float = 1.0
) -> None:
"""Создает точечную диаграмму с заданными параметрами."""
plt.scatter(x, y, s=s, c=c, marker=marker, alpha=alpha)
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.title('Scatter Plot Example')
plt.show()
# Пример использования
x_data = [1, 2, 3, 4, 5]
y_data = [2, 4, 1, 3, 5]
create_scatter_plot(x_data, y_data)
Примеры создания простых точечных диаграмм
import matplotlib.pyplot as plt
from typing import List
def simple_scatter_plot(x: List[float], y: List[float]) -> None:
"""Создает простую точечную диаграмму."""
plt.scatter(x, y)
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Simple Scatter Plot')
plt.show()
# Пример использования
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 4, 6]
simple_scatter_plot(x, y)
Необходимые аргументы: x
и y
Функция scatter()
принимает как минимум два обязательных аргумента: x
и y
. Эти аргументы представляют собой последовательности (например, списки или массивы NumPy) значений, которые определяют координаты точек на диаграмме. Длина последовательностей x
и y
должна быть одинаковой, так как каждая пара значений (x[i], y[i]) определяет положение одной точки.
Настройка внешнего вида точек
Размер точек: аргумент s
Аргумент s
определяет размер точек на диаграмме. Он может быть задан как одно число, в этом случае все точки будут иметь одинаковый размер, или как последовательность чисел, где каждое число определяет размер соответствующей точки.
import matplotlib.pyplot as plt
from typing import List
def scatter_plot_with_size(x: List[float], y: List[float], sizes: List[float]) -> None:
"""Создает точечную диаграмму с разными размерами точек."""
plt.scatter(x, y, s=sizes)
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Scatter Plot with Varying Sizes')
plt.show()
# Пример использования
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 4, 6]
sizes = [20, 40, 60, 80, 100]
scatter_plot_with_size(x, y, sizes)
Цвет точек: аргумент c
Аргумент c
определяет цвет точек. Он может быть задан как одно название цвета (например, ‘red’, ‘blue’, ‘green’), как шестнадцатеричный код цвета (например, ‘#FF0000’), или как последовательность значений, представляющих цвета каждой точки. В последнем случае можно использовать цветовую карту (colormap) для сопоставления значений с цветами.
Маркеры: аргумент marker
(формы точек)
Аргумент marker
определяет форму точек. Matplotlib предоставляет множество предопределенных маркеров, таких как ‘o’ (круг), ‘s’ (квадрат), ‘^’ (треугольник), ‘x’ (крестик) и другие.
Прозрачность: аргумент alpha
Аргумент alpha
определяет прозрачность точек. Значение alpha
должно быть в диапазоне от 0 (полностью прозрачный) до 1 (полностью непрозрачный).
Цвет контура точек: edgecolors
и linewidths
Аргумент edgecolors
определяет цвет контура точек, а linewidths
— толщину линии контура.
Использование цветовых карт (Colormaps)
Применение цветовой карты к данным
Цветовые карты позволяют сопоставить значения данных с цветами, что полезно для отображения дополнительных измерений на точечной диаграмме. Например, можно использовать цветовую карту для отображения плотности точек или значений третьей переменной.
Аргумент cmap
и его использование
Аргумент cmap
задает используемую цветовую карту. Matplotlib предоставляет множество встроенных цветовых карт, таких как ‘viridis’, ‘plasma’, ‘magma’, ‘cividis’ и другие. Выбор цветовой карты зависит от типа данных и целей визуализации.
Создание легенды для цветовой карты
Для того чтобы интерпретировать цвета на диаграмме, необходимо создать легенду, которая показывает соответствие между цветами и значениями данных. Это можно сделать с помощью функции plt.colorbar()
.
import matplotlib.pyplot as plt
import numpy as np
def scatter_plot_with_colormap(x, y, z):
"""Создает точечную диаграмму с использованием цветовой карты."""
plt.scatter(x, y, c=z, cmap='viridis')
plt.colorbar(label='Z Value')
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Scatter Plot with Colormap')
plt.show()
# Пример использования
x = np.random.rand(50)
y = np.random.rand(50)
z = np.random.rand(50)
scatter_plot_with_colormap(x, y, z)
Многомерные точечные диаграммы
Использование размера и цвета для отображения дополнительных измерений
Точечные диаграммы могут быть расширены для отображения более чем двух измерений путем использования размера и цвета точек. Например, можно использовать размер точек для отображения значений третьей переменной, а цвет точек — для отображения значений четвертой переменной.
Пример: Отображение взаимосвязи между тремя переменными
В контексте контекстной рекламы можно отобразить зависимость между ставкой, CTR и позицией объявления. x
— ставка, y
— CTR, а размер точки соответствует позиции объявления (чем меньше позиция, тем больше размер точки).
Дополнительные возможности функции scatter()
Группировка данных и отображение разными цветами/маркерами
Данные можно группировать по определенному признаку и отображать каждую группу своим цветом или маркером. Это позволяет визуально выделить различные группы и проанализировать их взаимосвязи.
Создание интерактивных точечных диаграмм
С помощью библиотеки plotly
можно создавать интерактивные точечные диаграммы, которые позволяют пользователям взаимодействовать с данными, например, увеличивать масштаб, перемещать точки и просматривать дополнительную информацию при наведении курсора.
Примеры продвинутого использования
Точечная диаграмма с разными размерами и цветами точек, отображающими различные свойства
import matplotlib.pyplot as plt
import numpy as np
# Пример данных (замените на свои данные)
x = np.random.rand(50)
y = np.random.rand(50)
sizes = np.random.rand(50) * 100 # Размеры точек
colors = np.random.rand(50) # Цвета точек
plt.figure(figsize=(8, 6))
plt.scatter(x, y, s=sizes, c=colors, cmap='viridis', alpha=0.7)
plt.colorbar(label='Значение')
plt.xlabel('Переменная X')
plt.ylabel('Переменная Y')
plt.title('Точечная диаграмма с разными размерами и цветами точек')
plt.show()
Совмещение точечных диаграмм с другими типами графиков (например, линиями)
Точечные диаграммы можно комбинировать с другими типами графиков, такими как линейные графики или гистограммы, для получения более полной картины данных. Например, можно наложить точечную диаграмму на линейный график, чтобы показать взаимосвязь между двумя переменными и одновременно отобразить тренд.
Заключение
Краткое повторение основных моментов
Функция scatter()
в Matplotlib является мощным инструментом для создания точечных диаграмм. Она предоставляет широкие возможности для настройки внешнего вида точек и отображения многомерных данных. Использование точечных диаграмм позволяет визуализировать взаимосвязи между переменными, выявлять кластеры и выбросы, а также анализировать общие тенденции в данных.
Рекомендации по дальнейшему изучению Matplotlib
Для дальнейшего изучения Matplotlib рекомендуется ознакомиться с официальной документацией библиотеки, а также с примерами кода и учебными пособиями, доступными в интернете. Также полезно изучить другие типы графиков, предоставляемые Matplotlib, и возможности их комбинирования для создания комплексных визуализаций.