Функция `scatter` в Matplotlib: Создание и настройка точечных диаграмм

Введение в точечные диаграммы 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, и возможности их комбинирования для создания комплексных визуализаций.


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