Что такое точечная диаграмма и когда ее использовать?
Точечная диаграмма (или диаграмма рассеяния) — это графическое представление данных, где отдельные точки отображаются на координатной плоскости. Каждая точка представляет собой пару значений по осям X и Y. Точечные диаграммы особенно полезны для:
- Выявления взаимосвязей: Обнаружение корреляций между двумя переменными.
- Определение кластеров: Идентификация групп точек, расположенных близко друг к другу.
- Обнаружение выбросов: Выявление точек, значительно отклоняющихся от основной массы данных.
- Визуализация больших объемов данных: Предоставление общей картины распределения данных.
Например, в интернет-маркетинге точечные диаграммы могут использоваться для анализа зависимости между бюджетом рекламной кампании и количеством привлеченных клиентов, или для выявления зависимости между CTR объявлений и их позицией в поисковой выдаче.
Краткий обзор библиотеки Matplotlib
Matplotlib — это мощная и гибкая библиотека Python для создания статических, анимированных и интерактивных визуализаций. Она предоставляет широкий набор инструментов для построения различных типов графиков, включая точечные диаграммы, гистограммы, линейные графики и многое другое. Matplotlib интегрируется с NumPy и Pandas, что делает ее удобной для работы с данными, полученными из различных источников.
Установка Matplotlib (если требуется)
Если у вас еще не установлена Matplotlib, вы можете установить ее с помощью pip:
pip install matplotlib
Или с помощью conda:
conda install matplotlib
Создание простой точечной диаграммы
Импорт библиотеки Matplotlib
Начните с импорта модуля pyplot из библиотеки Matplotlib. Обычно его импортируют под псевдонимом plt:
import matplotlib.pyplot as plt
Подготовка данных для диаграммы (примеры данных)
Предположим, у вас есть данные о затратах на контекстную рекламу и количестве полученных лидов. Представим их в виде двух списков:
import typing
x: typing.List[float] = [100, 150, 200, 250, 300]
y: typing.List[float] = [10, 12, 15, 18, 22]
Использование plt.scatter() для построения точек
Функция plt.scatter() создает точечную диаграмму. Передайте ей координаты X и Y:
import matplotlib.pyplot as plt
import typing
x: typing.List[float] = [100, 150, 200, 250, 300]
y: typing.List[float] = [10, 12, 15, 18, 22]
plt.scatter(x, y)
Отображение диаграммы с помощью plt.show()
Чтобы отобразить диаграмму, используйте функцию plt.show():
import matplotlib.pyplot as plt
import typing
x: typing.List[float] = [100, 150, 200, 250, 300]
y: typing.List[float] = [10, 12, 15, 18, 22]
plt.scatter(x, y)
plt.show()
Настройка внешнего вида точечной диаграммы
Изменение цвета и размера точек
Аргументы c (color) и s (size) позволяют изменить цвет и размер точек:
import matplotlib.pyplot as plt
import typing
x: typing.List[float] = [100, 150, 200, 250, 300]
y: typing.List[float] = [10, 12, 15, 18, 22]
plt.scatter(x, y, c='red', s=50)
plt.show()
Использование разных маркеров для точек
Аргумент marker позволяет изменить форму точек:
import matplotlib.pyplot as plt
import typing
x: typing.List[float] = [100, 150, 200, 250, 300]
y: typing.List[float] = [10, 12, 15, 18, 22]
plt.scatter(x, y, marker='x')
plt.show()
Добавление подписей к осям (xlabel, ylabel)
Используйте plt.xlabel() и plt.ylabel() для добавления подписей к осям:
import matplotlib.pyplot as plt
import typing
x: typing.List[float] = [100, 150, 200, 250, 300]
y: typing.List[float] = [10, 12, 15, 18, 22]
plt.scatter(x, y)
plt.xlabel('Затраты на рекламу')
plt.ylabel('Количество лидов')
plt.show()
Установка заголовка диаграммы (title)
Используйте plt.title() для добавления заголовка к диаграмме:
import matplotlib.pyplot as plt
import typing
x: typing.List[float] = [100, 150, 200, 250, 300]
y: typing.List[float] = [10, 12, 15, 18, 22]
plt.scatter(x, y)
plt.xlabel('Затраты на рекламу')
plt.ylabel('Количество лидов')
plt.title('Зависимость количества лидов от затрат на рекламу')
plt.show()
Добавление легенды (legend) (если необходимо)
Если у вас на диаграмме несколько наборов данных, можно добавить легенду с помощью plt.legend():
import matplotlib.pyplot as plt
import typing
x1: typing.List[float] = [100, 150, 200, 250, 300]
y1: typing.List[float] = [10, 12, 15, 18, 22]
x2: typing.List[float] = [120, 170, 220, 270, 320]
y2: typing.List[float] = [8, 11, 14, 17, 20]
plt.scatter(x1, y1, label='Кампания 1')
plt.scatter(x2, y2, label='Кампания 2')
plt.xlabel('Затраты на рекламу')
plt.ylabel('Количество лидов')
plt.title('Зависимость количества лидов от затрат на рекламу')
plt.legend()
plt.show()
Продвинутые возможности: работа с цветом и размером точек на основе данных
Сопоставление цветов точек со значениями из набора данных (colormap)
Можно использовать аргумент c для сопоставления цветов точек со значениями из третьего набора данных. Для этого нужно передать c массив значений, а также указать цветовую карту (cmap):
import matplotlib.pyplot as plt
import typing
x: typing.List[float] = [100, 150, 200, 250, 300]
y: typing.List[float] = [10, 12, 15, 18, 22]
z: typing.List[float] = [1, 2, 3, 4, 5] # Значения для цветовой кодировки
plt.scatter(x, y, c=z, cmap='viridis')
plt.xlabel('Затраты на рекламу')
plt.ylabel('Количество лидов')
plt.title('Зависимость количества лидов от затрат на рекламу')
plt.colorbar(label='Эффективность')
plt.show()
Изменение размера точек в зависимости от значения третьего измерения
Аналогично, можно изменять размер точек в зависимости от третьего измерения, используя аргумент s:
import matplotlib.pyplot as plt
import typing
x: typing.List[float] = [100, 150, 200, 250, 300]
y: typing.List[float] = [10, 12, 15, 18, 22]
z: typing.List[float] = [10, 20, 30, 40, 50] # Значения для размера
plt.scatter(x, y, s=z)
plt.xlabel('Затраты на рекламу')
plt.ylabel('Количество лидов')
plt.title('Зависимость количества лидов от затрат на рекламу')
plt.show()
Использование цветовой шкалы (colorbar) для интерпретации цветов
Когда вы используете цветовую кодировку, полезно добавить цветовую шкалу, чтобы понимать, какие значения соответствуют каким цветам. Для этого используйте plt.colorbar():
import matplotlib.pyplot as plt
import typing
x: typing.List[float] = [100, 150, 200, 250, 300]
y: typing.List[float] = [10, 12, 15, 18, 22]
z: typing.List[float] = [1, 2, 3, 4, 5] # Значения для цветовой кодировки
plt.scatter(x, y, c=z, cmap='viridis')
plt.xlabel('Затраты на рекламу')
plt.ylabel('Количество лидов')
plt.title('Зависимость количества лидов от затрат на рекламу')
plt.colorbar(label='Эффективность')
plt.show()
Сохранение точечной диаграммы
Сохранение диаграммы в файл (plt.savefig)
Чтобы сохранить диаграмму в файл, используйте функцию plt.savefig():
import matplotlib.pyplot as plt
import typing
x: typing.List[float] = [100, 150, 200, 250, 300]
y: typing.List[float] = [10, 12, 15, 18, 22]
plt.scatter(x, y)
plt.xlabel('Затраты на рекламу')
plt.ylabel('Количество лидов')
plt.title('Зависимость количества лидов от затрат на рекламу')
plt.savefig('scatter_plot.png')
Выбор формата файла (PNG, JPG, PDF, SVG)
plt.savefig() автоматически определяет формат файла на основе расширения, которое вы укажете в имени файла. Поддерживаются различные форматы, такие как PNG, JPG, PDF и SVG.
Установка разрешения (dpi) при сохранении
Аргумент dpi позволяет установить разрешение изображения при сохранении:
import matplotlib.pyplot as plt
import typing
x: typing.List[float] = [100, 150, 200, 250, 300]
y: typing.List[float] = [10, 12, 15, 18, 22]
plt.scatter(x, y)
plt.xlabel('Затраты на рекламу')
plt.ylabel('Количество лидов')
plt.title('Зависимость количества лидов от затрат на рекламу')
plt.savefig('scatter_plot.png', dpi=300)
Более высокое значение dpi приведет к более четкому изображению, но и к большему размеру файла.