Введение
В этом практическом занятии мы научимся создавать график с несколькими наборами данных с использованием паразитной оси в 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. Мы также узнали, как调整位置 вложенных осей, построить данные, установить пределы и метки осей, добавить легенду и цвет к графику и отобразить график.