Как построить диаграмму рассеяния в Python с использованием Matplotlib: пошаговое руководство

Что такое диаграмма рассеяния и когда ее использовать?

Диаграмма рассеяния (scatterplot) – это графическое представление данных, в котором отдельные точки отображаются на плоскости, где каждая ось соответствует одной переменной. Положение точки определяется значениями этих переменных. Диаграммы рассеяния используются для:

  • Определения наличия и характера связи между двумя переменными (корреляция).
  • Выявления кластеров или групп данных.
  • Обнаружения выбросов (аномальных значений).

Диаграммы рассеяния особенно полезны в таких областях, как анализ данных, машинное обучение, интернет-маркетинг (например, анализ зависимости между затратами на рекламу и конверсией).

Обзор библиотеки Matplotlib для визуализации данных

Matplotlib – это одна из самых популярных библиотек Python для создания статических, интерактивных и анимированных визуализаций. Она предоставляет широкий спектр инструментов для построения различных типов графиков, включая диаграммы рассеяния, гистограммы, линейные графики и многое другое. Matplotlib является основой для многих других библиотек визуализации, таких как Seaborn и Pandas.

Установка и настройка Matplotlib в Python

Установить Matplotlib можно с помощью pip:

pip install matplotlib

После установки можно импортировать библиотеку в свой Python-скрипт:

import matplotlib.pyplot as plt

Создание простой диаграммы рассеяния с использованием Matplotlib

Импорт библиотеки Matplotlib

Как было показано выше, для использования Matplotlib необходимо импортировать модуль pyplot:

import matplotlib.pyplot as plt

Подготовка данных для диаграммы рассеяния (примеры данных)

Предположим, у нас есть данные о расходах на контекстную рекламу и количестве лидов, полученных с этой рекламы:

import typing

x_data: typing.List[float] = [100, 150, 200, 250, 300, 350, 400]  # Расходы на рекламу
y_data: typing.List[float] = [10, 12, 15, 18, 20, 22, 25]  # Количество лидов

Использование функции scatter() для построения диаграммы

Функция scatter() создает диаграмму рассеяния:

import matplotlib.pyplot as plt
import typing

x_data: typing.List[float] = [100, 150, 200, 250, 300, 350, 400]  # Расходы на рекламу
y_data: typing.List[float] = [10, 12, 15, 18, 20, 22, 25]  # Количество лидов

plt.scatter(x_data, y_data)

Отображение диаграммы с помощью plt.show()

Чтобы увидеть график, используйте функцию plt.show():

import matplotlib.pyplot as plt
import typing

x_data: typing.List[float] = [100, 150, 200, 250, 300, 350, 400]  # Расходы на рекламу
y_data: typing.List[float] = [10, 12, 15, 18, 20, 22, 25]  # Количество лидов

plt.scatter(x_data, y_data)
plt.show()

Настройка внешнего вида диаграммы рассеяния

Изменение цветов и размеров точек

Аргументы c и s функции scatter() позволяют изменить цвет и размер точек соответственно:

import matplotlib.pyplot as plt
import typing

x_data: typing.List[float] = [100, 150, 200, 250, 300, 350, 400]
y_data: typing.List[float] = [10, 12, 15, 18, 20, 22, 25]

plt.scatter(x_data, y_data, c='red', s=50)
plt.show()

Настройка маркеров (формы точек)

Аргумент marker позволяет изменить форму маркеров:

import matplotlib.pyplot as plt
import typing

x_data: typing.List[float] = [100, 150, 200, 250, 300, 350, 400]
y_data: typing.List[float] = [10, 12, 15, 18, 20, 22, 25]

plt.scatter(x_data, y_data, marker='x')
plt.show()

Добавление подписей к осям и заголовка диаграммы

Функции plt.xlabel(), plt.ylabel() и plt.title() позволяют добавить подписи к осям и заголовок:

import matplotlib.pyplot as plt
import typing

x_data: typing.List[float] = [100, 150, 200, 250, 300, 350, 400]
y_data: typing.List[float] = [10, 12, 15, 18, 20, 22, 25]

plt.scatter(x_data, y_data)
plt.xlabel('Расходы на рекламу')
plt.ylabel('Количество лидов')
plt.title('Зависимость лидов от расходов на рекламу')
plt.show()

Добавление легенды (если необходимо)

Легенда используется, когда на графике отображаются несколько наборов данных. Для этого необходимо добавить аргумент label в функцию scatter() и вызвать plt.legend():

Реклама
import matplotlib.pyplot as plt
import typing

x_data_1: typing.List[float] = [100, 150, 200, 250, 300, 350, 400]
y_data_1: typing.List[float] = [10, 12, 15, 18, 20, 22, 25]
x_data_2: typing.List[float] = [120, 170, 220, 270, 320, 370, 420]
y_data_2: typing.List[float] = [8, 11, 14, 17, 19, 21, 24]

plt.scatter(x_data_1, y_data_1, label='Кампания 1')
plt.scatter(x_data_2, y_data_2, label='Кампания 2')
plt.xlabel('Расходы на рекламу')
plt.ylabel('Количество лидов')
plt.title('Зависимость лидов от расходов на рекламу')
plt.legend()
plt.show()

Продвинутые возможности диаграмм рассеяния в Matplotlib

Использование цветовой шкалы для отображения дополнительной переменной

Цвет точек можно использовать для отображения третьей переменной. Для этого нужно передать массив значений в аргумент c и указать цветовую карту с помощью cmap:

import matplotlib.pyplot as plt
import typing
import numpy as np

x_data: typing.List[float] = [100, 150, 200, 250, 300, 350, 400]
y_data: typing.List[float] = [10, 12, 15, 18, 20, 22, 25]
z_data: typing.List[float] = [1, 2, 3, 4, 5, 6, 7]

plt.scatter(x_data, y_data, c=z_data, cmap='viridis')
plt.colorbar(label='Дополнительная переменная')
plt.xlabel('Расходы на рекламу')
plt.ylabel('Количество лидов')
plt.title('Зависимость лидов от расходов на рекламу')
plt.show()

Изменение прозрачности точек (alpha)

Аргумент alpha позволяет сделать точки полупрозрачными, что полезно при большом количестве точек:

import matplotlib.pyplot as plt
import typing
import numpy as np

x_data: typing.List[float] = np.random.rand(100) # Random data
y_data: typing.List[float] = np.random.rand(100)

plt.scatter(x_data, y_data, alpha=0.5)
plt.show()

Создание нескольких диаграмм рассеяния на одном графике

Можно использовать plt.subplot() для создания нескольких графиков в одной фигуре.

import matplotlib.pyplot as plt
import typing
import numpy as np

x_data_1: typing.List[float] = np.random.rand(50)
y_data_1: typing.List[float] = np.random.rand(50)
x_data_2: typing.List[float] = np.random.rand(50)
y_data_2: typing.List[float] = np.random.rand(50)

plt.subplot(1, 2, 1) # 1 row, 2 columns, first subplot
plt.scatter(x_data_1, y_data_1)
plt.title('График 1')

plt.subplot(1, 2, 2) # 1 row, 2 columns, second subplot
plt.scatter(x_data_2, y_data_2)
plt.title('График 2')

plt.show()

Сохранение диаграммы в файл (PNG, JPG, PDF и др.)

Функция plt.savefig() позволяет сохранить диаграмму в файл:

import matplotlib.pyplot as plt
import typing

x_data: typing.List[float] = [100, 150, 200, 250, 300, 350, 400]
y_data: typing.List[float] = [10, 12, 15, 18, 20, 22, 25]

plt.scatter(x_data, y_data)
plt.xlabel('Расходы на рекламу')
plt.ylabel('Количество лидов')
plt.title('Зависимость лидов от расходов на рекламу')
plt.savefig('scatter_plot.png')

Примеры использования диаграмм рассеяния и полезные советы

Пример 1: Анализ зависимости между двумя переменными

Диаграмма рассеяния может быть использована для анализа связи между двумя переменными, например, между количеством показов рекламы и CTR (click-through rate). Если на графике наблюдается тенденция к увеличению CTR с ростом количества показов, это может говорить о том, что реклама эффективна и привлекает внимание пользователей.

Пример 2: Кластеризация данных с помощью диаграмм рассеяния

Диаграммы рассеяния позволяют визуально оценить наличие кластеров в данных. Например, можно построить диаграмму рассеяния, где по осям отложены два признака клиентов (например, возраст и доход), и визуально определить группы клиентов с похожими характеристиками. Это может быть полезно для сегментации аудитории и таргетинга рекламы.

Советы по улучшению читаемости и информативности диаграмм

  • Используйте понятные подписи к осям и заголовки. Они должны четко описывать, что изображено на графике.
  • Настраивайте цвета и размеры точек для лучшей визуализации данных. Используйте цветовую шкалу для отображения дополнительной информации.
  • Избегайте перегруженности графика. Если данных слишком много, можно использовать прозрачность (alpha) или разбить данные на несколько графиков.
  • Добавляйте легенду, если на графике отображаются несколько наборов данных.
  • Сохраняйте диаграммы в высоком разрешении для качественной печати или публикации в интернете.

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