Функция plot
– это основная функция в pyplot
для создания линейных графиков. Она принимает на вход массивы данных и отображает их в виде линий на графике. plot
обладает гибкими возможностями для настройки внешнего вида линий, маркеров, осей и других элементов графика.
Основы использования функции plot для построения линейных графиков
Простейший линейный график: передача одного массива данных
В простейшем случае функция plot
принимает один массив данных, который интерпретируется как значения по оси y. Значения по оси x генерируются автоматически, начиная с 0 и увеличиваясь на 1 для каждого элемента массива.
import matplotlib.pyplot as plt
from typing import List
def simple_plot(data: List[float]) -> None:
"""Creates a simple line plot with default x-axis values."""
plt.plot(data)
plt.xlabel("Index")
plt.ylabel("Value")
plt.title("Simple Line Plot")
plt.show()
data = [1, 3, 2, 4, 5]
simple_plot(data)

Создание графика по точкам: передача x и y координат
Для создания графика по заданным координатам необходимо передать два массива данных: один для значений по оси x, а другой – для значений по оси y.
import matplotlib.pyplot as plt
from typing import List
def xy_plot(x_data: List[float], y_data: List[float]) -> None:
"""Creates a line plot with specified x and y coordinates."""
plt.plot(x_data, y_data)
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
plt.title("XY Line Plot")
plt.show()
x_data = [1, 2, 3, 4, 5]
y_data = [2, 4, 1, 3, 5]
xy_plot(x_data, y_data)

Настройка внешнего вида линии: цвет, стиль, толщина
Функция plot
позволяет настраивать внешний вид линии, используя различные параметры, такие как цвет (color
), стиль (linestyle
) и толщина (linewidth
).
import matplotlib.pyplot as plt
from typing import List
def styled_plot(x_data: List[float], y_data: List[float]) -> None:
"""Creates a styled line plot with custom color, style, and width."""
plt.plot(x_data, y_data, color='red', linestyle='--', linewidth=2)
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
plt.title("Styled Line Plot")
plt.show()
x_data = [1, 2, 3, 4, 5]
y_data = [2, 4, 1, 3, 5]
styled_plot(x_data, y_data)

Настройка осей и заголовка графика
Добавление заголовка к графику (title)
Функция title
позволяет добавить заголовок к графику, описывающий его содержимое.
Подписи к осям (xlabel, ylabel)
Функции xlabel
и ylabel
позволяют добавить подписи к осям x и y, соответственно, для указания единиц измерения или типа данных.
Установка пределов осей (xlim, ylim)
Функции xlim
и ylim
позволяют установить пределы отображения по осям x и y, чтобы сфокусироваться на определенной области данных.
Добавление легенды (legend)
Функция legend
позволяет добавить легенду к графику, описывающую значения каждой линии.
import matplotlib.pyplot as plt
from typing import List
def labeled_plot(x_data: List[float], y_data1: List[float], y_data2: List[float]) -> None:
"""Creates a plot with labels, title, axis limits, and legend."""
plt.plot(x_data, y_data1, label='Line 1')
plt.plot(x_data, y_data2, label='Line 2')
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
plt.title("Labeled Line Plot")
plt.xlim(0, 6)
plt.ylim(0, 6)
plt.legend()
plt.show()
x_data = [1, 2, 3, 4, 5]
y_data1 = [2, 4, 1, 3, 5]
y_data2 = [1, 3, 2, 4, 1]
labeled_plot(x_data, y_data1, y_data2)

Работа с несколькими графиками на одном рисунке
Использование subplot для создания нескольких областей рисования
Функция subplot
позволяет разделить область рисования на несколько подобластей, в каждой из которых можно отобразить отдельный график. Это полезно для сравнения нескольких наборов данных или для отображения разных аспектов одних и тех же данных.
Рисование нескольких графиков в одной области plot
Можно также рисовать несколько графиков в одной области plot
, просто вызвав функцию plot
несколько раз с разными данными.
import matplotlib.pyplot as plt
from typing import List
def multi_plot(x_data: List[float], y_data1: List[float], y_data2: List[float]) -> None:
"""Creates multiple plots on the same figure."""
plt.subplot(1, 2, 1) # 1 row, 2 columns, first subplot
plt.plot(x_data, y_data1, label='Line 1')
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
plt.title("Plot 1")
plt.subplot(1, 2, 2) # 1 row, 2 columns, second subplot
plt.plot(x_data, y_data2, label='Line 2', color='green')
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
plt.title("Plot 2")
plt.tight_layout() # Adjusts subplot params for a tight layout.
plt.show()
x_data = [1, 2, 3, 4, 5]
y_data1 = [2, 4, 1, 3, 5]
y_data2 = [1, 3, 2, 4, 1]
multi_plot(x_data, y_data1, y_data2)

Настройка маркеров и отображение данных
Изменение маркеров на графике (marker)
Параметр marker
позволяет изменить маркеры, отображаемые на графике, для выделения отдельных точек.
Настройка размера и цвета маркеров
Размер и цвет маркеров можно настроить с помощью параметров markersize
и markerfacecolor
, соответственно.
Совмещение линий и маркеров
Можно одновременно отображать линии и маркеры, комбинируя параметры linestyle
и marker
.
import matplotlib.pyplot as plt
from typing import List
def marker_plot(x_data: List[float], y_data: List[float]) -> None:
"""Creates a plot with markers and lines."""
plt.plot(x_data, y_data, marker='o', linestyle='-', markersize=8, markerfacecolor='blue')
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
plt.title("Marker Line Plot")
plt.show()
x_data = [1, 2, 3, 4, 5]
y_data = [2, 4, 1, 3, 5]
marker_plot(x_data, y_data)

Дополнительные возможности функции plot
Использование различных цветовых карт (Colormaps)
Matplotlib предоставляет широкий выбор цветовых карт, которые можно использовать для отображения данных в разных цветах в зависимости от их значений. Это особенно актуально для визуализации, например, результатов A/B тестов, где интенсивность цвета может отражать уровень значимости.
Создание аннотаций на графиках (annotate)
Функция annotate
позволяет добавлять аннотации к графикам, указывая на определенные точки или области и добавляя к ним текст.
Добавление текста на график (text)
Функция text
позволяет добавлять текст в произвольном месте графика.
import matplotlib.pyplot as plt
from typing import List
def annotated_plot(x_data: List[float], y_data: List[float]) -> None:
"""Creates an annotated plot."""
plt.plot(x_data, y_data)
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
plt.title("Annotated Line Plot")
plt.annotate('Important Point', xy=(2, 4), xytext=(3, 5),
arrowprops=dict(facecolor='black', shrink=0.05))
plt.text(1, 1, 'Additional Text', fontsize=10)
plt.show()
x_data = [1, 2, 3, 4, 5]
y_data = [2, 4, 1, 3, 5]
annotated_plot(x_data, y_data)

Примеры использования функции plot в различных задачах
Визуализация математических функций
Функция plot
может быть использована для визуализации математических функций, таких как синус, косинус, экспонента и другие.
Построение графиков зависимостей из данных
plot
позволяет строить графики зависимостей между различными переменными из наборов данных, например, зависимость CTR от позиции объявления в контекстной рекламе.
Создание графиков временных рядов
С помощью plot
можно визуализировать временные ряды, такие как изменение курса валюты или количество посещений веб-сайта во времени. Например, анализ динамики трафика из органического поиска в сравнении с контекстной рекламой, где можно визуально оценить эффективность различных каналов продвижения.
Сохранение графиков в файл
Сохранение графиков в различных форматах (PNG, JPG, SVG, PDF)
Функция savefig
позволяет сохранять графики в различных форматах, таких как PNG, JPG, SVG и PDF. Это позволяет легко делиться визуализациями или включать их в отчеты и презентации.
Настройка параметров сохранения (разрешение, качество)
При сохранении графиков можно настроить параметры, такие как разрешение (DPI) и качество, чтобы добиться оптимального баланса между размером файла и качеством изображения.
import matplotlib.pyplot as plt
from typing import List
def saving_plot(x_data: List[float], y_data: List[float], filename: str) -> None:
"""Creates and saves a plot to a file."""
plt.plot(x_data, y_data)
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
plt.title("Saved Line Plot")
plt.savefig(filename, dpi=300, bbox_inches="tight") # Save the plot with specified DPI and remove extra whitespace
plt.close() # Closes the plot to free memory
x_data = [1, 2, 3, 4, 5]
y_data = [2, 4, 1, 3, 5]
saving_plot(x_data, y_data, "saved_plot.png")
Заключение
Краткий обзор изученного материала
В этой статье мы рассмотрели функцию plot
библиотеки Matplotlib, которая является основным инструментом для создания линейных графиков в Python. Мы изучили основы использования plot
, настройку внешнего вида графиков, работу с несколькими графиками на одном рисунке, настройку маркеров и отображение данных, а также дополнительные возможности функции plot
и сохранение графиков в файл.
Рекомендации по дальнейшему изучению Matplotlib
Для дальнейшего изучения Matplotlib рекомендуется ознакомиться с другими типами графиков, такими как столбчатые диаграммы, круговые диаграммы, точечные диаграммы и гистограммы. Также полезно изучить возможности библиотеки Seaborn, которая построена на основе Matplotlib и предоставляет более высокоуровневый интерфейс для создания сложных статистических визуализаций.