Data Visualization

Мастерство Matplotlib: Соединение точек на диаграмме рассеяния линиями

Spread the love

Точечные диаграммы — мощный инструмент для визуализации взаимосвязи между двумя переменными. Однако иногда полезно улучшить визуализацию, соединив точки данных линиями, подчеркивая тренды и закономерности. В этом руководстве рассматриваются несколько способов достижения этого в Matplotlib, с упором на ясность и лучшие практики.

Содержание

Сочетание scatter() и plot()

Самый простой подход — использовать функции scatter() и plot() одновременно. Это позволяет независимо управлять внешним видом точек и соединяющих их линий. Крайне важно убедиться, что plt.show() вызывается *после* обеих функций, чтобы корректно отобразить оба элемента.


import matplotlib.pyplot as plt
import numpy as np

# Пример данных
x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 4, 1, 3, 5])

# Создание точечной диаграммы
plt.scatter(x, y, color='blue', label='Точки данных')

# Соединение точек линией
plt.plot(x, y, color='red', linestyle='-', linewidth=2, label='Линия тренда')

# Добавление подписей и легенды
plt.xlabel("Ось X")
plt.ylabel("Ось Y")
plt.title("Точечная диаграмма с соединяющей линией")
plt.legend()

# Отображение графика
plt.show()

Настройка стилей линий с помощью plot()

Функция matplotlib.pyplot.plot() предоставляет широкие возможности управления эстетикой линий. Атрибут linestyle позволяет задавать различные стили линий (сплошная, штриховая, пунктирная и т. д.), а другие параметры, такие как color и linewidth, дополнительно уточняют внешний вид. Маркеры можно добавить, чтобы выделить точки данных непосредственно на линии.


import matplotlib.pyplot as plt
import numpy as np

x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 4, 1, 3, 5])

plt.plot(x, y, linestyle='--', color='green', marker='o', markersize=8, label='Настраиваемая линия')
plt.xlabel("Ось X")
plt.ylabel("Ось Y")
plt.title("Настроенный линейный график")
plt.legend()
plt.show()

Управление порядком слоев с помощью zorder

При сочетании scatter() и plot() порядок прорисовки может не всегда соответствовать порядку выполнения. Ключевой параметр zorder управляет порядком наложения элементов графика. Элементы с более высокими значениями zorder рисуются поверх остальных. Это важно для обеспечения четкой видимости точек рассеяния даже при наложении на линию.


import matplotlib.pyplot as plt
import numpy as np

x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 4, 1, 3, 5])

# Линия рисуется первой, за точками рассеяния
plt.plot(x, y, zorder=1, color='purple', label='Базовый тренд')

# Точки рассеяния рисуются поверх
plt.scatter(x, y, zorder=2, color='orange', label='Точки данных')

plt.xlabel("Ось X")
plt.ylabel("Ось Y")
plt.title("Управление порядком слоев с помощью zorder")
plt.legend()
plt.show()

Овладев этими методами, вы сможете создавать четкие, информативные и визуально привлекательные визуализации, эффективно передающие как отдельные точки данных, так и общие тенденции в ваших данных.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *