Создание двуосиейного графика в Matplotlib

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

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

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

Введение

В этом руководстве вы узнаете, как создать простую диаграмму с использованием Matplotlib, библиотеки Python для визуализации данных. Мы будем использовать модуль host_subplot для создания диаграммы с двумя осями y.

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

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

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

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

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

Первым шагом является импорт необходимых модулей для нашей диаграммы. Мы будем использовать numpy для генерации наших данных по осям x и y, matplotlib.pyplot для создания диаграммы и mpl_toolkits.axes_grid1 для создания второй оси y.

import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.axes_grid1 import host_subplot

Генерируем данные

Далее нам нужно сгенерировать данные по осям x и y. Для примера мы будем генерировать синусоидальную волну.

xx = np.arange(0, 2*np.pi, 0.01)
yy = np.sin(xx)

Создаем диаграмму

Теперь мы можем создать нашу диаграмму с использованием функции host_subplot. Эта функция создает подграфик с двумя осями y.

ax = host_subplot(111)
ax.plot(xx, yy)

Создаем вторую ось y

Для создания второй оси y нам нужно создать новый объект оси с использованием функции twin.

ax2 = ax.twin()

Задаем метки делений для второй оси y

Мы можем задать метки делений для второй оси y с использованием функции set_xticks и передав в качестве аргументов позиции делений и метки.

ax2.set_xticks([0.,.5*np.pi, np.pi, 1.5*np.pi, 2*np.pi],
               labels=["$0$", r"$\frac{1}{2}\pi$",
                       r"$\pi$", r"$\frac{3}{2}\pi$", r"$2\pi$"])

Скрываем метки делений для правой оси y

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

ax2.axis["right"].major_ticklabels.set_visible(False)

Показываем метки делений для верхней оси y

Мы можем показать метки делений для верхней оси y с использованием той же функции major_ticklabels.set_visible.

ax2.axis["top"].major_ticklabels.set_visible(True)

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

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

plt.show()

Резюме

В этом уроке мы узнали, как создать простой график с двумя осями y с использованием Matplotlib. Мы использовали модуль host_subplot для создания графика и модуль mpl_toolkits.axes_grid1 для создания второй оси y. Мы сгенерировали наши данные с использованием numpy и отобразили график с использованием matplotlib.pyplot.