Функция plot в Matplotlib: Создание линейных графиков в Python

Функция 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 и предоставляет более высокоуровневый интерфейс для создания сложных статистических визуализаций.


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