Создание многографика с вложенными осями в Matplotlib

PythonPythonBeginner
Практиковаться сейчас

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

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии мы научимся создавать график с несколькими наборами данных с использованием паразитной оси в Python Matplotlib. Для этого мы будем использовать mpl_toolkits.axes_grid1.parasite_axes.host_subplot и mpl_toolkits.axisartist.axislines.Axes для создания графика с несколькими осями y.

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

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

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

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

Импортируем библиотеки

Сначала нам нужно импортировать необходимые библиотеки. Мы будем использовать matplotlib.pyplot для построения графиков и mpl_toolkits для создания паразитной оси.

import matplotlib.pyplot as plt
from mpl_toolkits import axisartist
from mpl_toolkits.axes_grid1 import host_subplot

Создаем основную и паразитные оси

Мы создадим основную ось и две паразитные оси с использованием функций host_subplot() и twinx(). Функция host_subplot() создает основную ось, а функция twinx() создает паразитные оси, которые совместно используют ту же ось x, что и основная ось.

host = host_subplot(111, axes_class=axisartist.Axes)
plt.subplots_adjust(right=0.75)

par1 = host.twinx()
par2 = host.twinx()

Настройка паразитной оси

Нам нужно настроить положение паразитных осей. Функция new_fixed_axis() используется для создания новой оси y справа от графика. Функция toggle() используется для включения всех делений и меток правой оси y.

par2.axis["right"] = par2.new_fixed_axis(loc="right", offset=(60, 0))

par1.axis["right"].toggle(all=True)
par2.axis["right"].toggle(all=True)

Построение графика данных

Мы построим три набора данных на одном графике: Плотность, Температура и Скорость. Для построения данных мы будем использовать функцию plot().

p1, = host.plot([0, 1, 2], [0, 1, 2], label="Density")
p2, = par1.plot([0, 1, 2], [0, 3, 2], label="Temperature")
p3, = par2.plot([0, 1, 2], [50, 30, 15], label="Velocity")

Установка пределов и меток осей

Мы установим пределы и метки для осей x и y для каждой оси с использованием функции set().

host.set(xlim=(0, 2), ylim=(0, 2), xlabel="Distance", ylabel="Density")
par1.set(ylim=(0, 4), ylabel="Temperature")
par2.set(ylim=(1, 65), ylabel="Velocity")

Добавление легенды и цвета

Мы добавим легенду к графику и покрасим метки каждой оси в соответствии с цветом соответствующего набора данных с использованием функций legend() и label.set_color().

host.legend()

host.axis["left"].label.set_color(p1.get_color())
par1.axis["right"].label.set_color(p2.get_color())
par2.axis["right"].label.set_color(p3.get_color())

Отображение графика

Наконец, мы отобразим график с использованием функции show().

plt.show()

Резюме

В этом практическом занятии мы узнали, как создавать график с несколькими наборами данных с использованием вложенных осей в Matplotlib для Python. Мы использовали mpl_toolkits.axes_grid1.parasite_axes.host_subplot и mpl_toolkits.axisartist.axislines.Axes, чтобы создать график с несколькими осями y. Мы также узнали, как调整位置 вложенных осей, построить данные, установить пределы и метки осей, добавить легенду и цвет к графику и отобразить график.