Составление пользовательских легенд

Beginner

This tutorial is from open-source community. Access the source code

Введение

Библиотека Python Matplotlib предоставляет гибкий способ создания и настройки легенды на графике. Легенды являются важной частью любого графика, так как они предоставляют ясное и краткое объяснение данных, представленных на графике. В этом практическом занятии мы проведем вас через процесс составления пользовательских легенд с использованием объектов Matplotlib.

Советы по работе с ВМ

После запуска виртуальной машины нажмите в левом верхнем углу, чтобы переключиться на вкладку Notebook и получить доступ к Jupyter Notebook для практики.

Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook загрузится полностью. Валидация операций не может быть автоматизирована из-за ограничений Jupyter Notebook.

Если вы сталкиваетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.

Построение линий

В этом шаге мы построим набор линий с использованием библиотеки Matplotlib. Сначала мы создадим некоторые случайные данные с использованием NumPy. Затем мы установим цикл цветов с использованием функции cycler, чтобы указать карту цветов. Наконец, мы построим данные с использованием функции plot и вызовем legend(), чтобы сгенерировать легенду.

import matplotlib.pyplot as plt
import numpy as np

## Установка случайного состояния для воспроизводимости
np.random.seed(19680801)

## Создание случайных данных
N = 10
data = (np.geomspace(1, 10, 100) + np.random.randn(N, 100)).T

## Установка цикла цветов
cmap = plt.cm.coolwarm
plt.rcParams['axes.prop_cycle'] = cycler(color=cmap(np.linspace(0, 1, N)))

## Построение данных и генерация легенды
fig, ax = plt.subplots()
lines = ax.plot(data)
ax.legend()

Составление пользовательской легенды

В этом шаге мы создадим пользовательскую легенду с использованием объектов Matplotlib. Сначала мы импортируем класс Line2D из модуля matplotlib.lines. Затем мы создаем список объектов Line2D с пользовательскими атрибутами цвета, ширины и метки. Наконец, мы снова строим данные с использованием функции plot и вызываем legend() с пользовательскими линиями и соответствующими метками.

## Import Line2D class
from matplotlib.lines import Line2D

## Create custom lines
custom_lines = [Line2D([0], [0], color=cmap(0.), lw=4),
                Line2D([0], [0], color=cmap(.5), lw=4),
                Line2D([0], [0], color=cmap(1.), lw=4)]

## Plot data and generate custom legend
fig, ax = plt.subplots()
lines = ax.plot(data)
ax.legend(custom_lines, ['Cold', 'Medium', 'Hot'])

Составление пользовательской легенды с различными объектами Matplotlib

В этом шаге мы создадим пользовательскую легенду с использованием различных объектов Matplotlib, включая Line2D и Patch. Сначала мы импортируем класс Patch из модуля matplotlib.patches. Затем мы создаем список объектов Line2D и Patch с пользовательскими атрибутами. Наконец, мы вызываем legend() с пользовательскими объектами и соответствующими метками.

## Import Line2D and Patch classes
from matplotlib.lines import Line2D
from matplotlib.patches import Patch

## Create legend elements
legend_elements = [Line2D([0], [0], color='b', lw=4, label='Line'),
                   Line2D([0], [0], marker='o', color='w', label='Scatter',
                          markerfacecolor='g', markersize=15),
                   Patch(facecolor='orange', edgecolor='r',
                         label='Color Patch')]

## Plot data and generate custom legend
fig, ax = plt.subplots()
ax.legend(handles=legend_elements, loc='center')

Резюме

В этом практическом занятии мы узнали, как создавать пользовательские легенды с использованием объектов Matplotlib. Мы начали с построения набора линий и генерации стандартной легенды. Затем мы составили пользовательскую легенду с использованием объектов Line2D с пользовательскими атрибутами. Наконец, мы создали пользовательскую легенду с использованием различных объектов Matplotlib, включая Line2D и Patch. С помощью пользовательских легенд мы можем дать ясное и краткое объяснение данных, представленных на графике.