Точечные диаграммы — мощный инструмент для визуализации взаимосвязи между двумя переменными. Однако иногда полезно улучшить визуализацию, соединив точки данных линиями, подчеркивая тренды и закономерности. В этом руководстве рассматриваются несколько способов достижения этого в Matplotlib, с упором на ясность и лучшие практики.
Содержание
- Сочетание
scatter()
иplot()
- Настройка стилей линий с помощью
plot()
- Управление порядком слоев с помощью
zorder
Сочетание 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()
Овладев этими методами, вы сможете создавать четкие, информативные и визуально привлекательные визуализации, эффективно передающие как отдельные точки данных, так и общие тенденции в ваших данных.