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

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

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

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

Введение

В этом лабораторном занятии вы научитесь создавать графики с разными шкалами в Python с использованием Matplotlib. В частности, вы научитесь создавать два графика на одной оси с разными левой и правой шкалами.

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

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

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

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

Импортируем необходимые библиотеки

Прежде чем начать, импортируем необходимые библиотеки. В этом уроке мы будем использовать Matplotlib и NumPy.

import matplotlib.pyplot as plt
import numpy as np

Создадим некоторые имитационные данные

Далее мы создадим некоторые имитационные данные для наших графиков. Мы будем использовать numpy.arange, чтобы создать массив значений от 0,01 до 10,0 с шагом 0,01. Затем мы используем numpy.exp и numpy.sin, чтобы создать два набора данных.

## Create some mock data
t = np.arange(0.01, 10.0, 0.01)
data1 = np.exp(t)
data2 = np.sin(2 * np.pi * t)

Создадим график

Теперь, когда у нас есть наши данные, мы можем создать график. Мы начнем с создания объекта оси с использованием matplotlib.pyplot.subplots(). Затем мы построим наш первый набор данных на этом объекте оси и установим цвет метки в красный.

fig, ax1 = plt.subplots()

color = 'tab:red'
ax1.set_xlabel('time (s)')
ax1.set_ylabel('exp', color=color)
ax1.plot(t, data1, color=color)
ax1.tick_params(axis='y', labelcolor=color)

Далее мы создадим второй объект оси, который разделяет ту же ось x, что и первый объект оси, с использованием метода ax1.twinx(). Затем мы построим наш второй набор данных на этом новом объекте оси и установим цвет метки в синий.

ax2 = ax1.twinx()

color = 'tab:blue'
ax2.set_ylabel('sin', color=color)
ax2.plot(t, data2, color=color)
ax2.tick_params(axis='y', labelcolor=color)

Наконец, мы настроим макет нашего графика с использованием метода fig.tight_layout() и отобразим его с использованием matplotlib.pyplot.show().

fig.tight_layout()
plt.show()

Просмотрите график

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

Резюме

Поздравляем! Вы узнали, как создавать графики с разными шкалами в Python с использованием Matplotlib. В частности, вы узнали, как создать два графика на одной оси с разными левой и правой шкалами, используя две разные оси, которые разделяют одну и ту же ось x. Вы можете использовать отдельные форматировщики и локаторы matplotlib.ticker, по желанию, так как две оси независимы.