Настройка осей (spines) в Matplotlib

Beginner

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

Введение

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

Советы по виртуальной машине (VM)

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

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

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

Импорт библиотек Matplotlib и NumPy

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

import matplotlib.pyplot as plt
import numpy as np

Создание примерных данных

Далее мы создадим примерные данные для нашего графика с использованием NumPy. Мы сгенерируем 100 точек данных в диапазоне от 0 до 2π и вычислим соответствующие им значения синуса.

x = np.linspace(0, 2 * np.pi, 100)
y = 2 * np.sin(x)

Создание подграфиков

Мы создадим три подграфика, чтобы продемонстрировать различные настройки осей (spines). Мы будем использовать компоновку с ограничениями (constrained layout), чтобы убедиться, что метки не перекрывают оси.

fig, (ax0, ax1, ax2) = plt.subplots(nrows=3, layout='constrained')

Настройка осей (spines) по всем четырем сторонам

В первом подграфике мы отобразим оси (spines) по всем четырем сторонам графика. Мы можем получить доступ к осям (spines) каждого подграфика с помощью контейнера ax.spines. Затем мы можем настроить оси (spines) с использованием различных методов.

ax0.plot(x, y)
ax0.set_title('Normal Spines')

Настройка осей (spines) для нижней и левой сторон

Во втором подграфике мы отобразим оси (spines) только на нижней и левой сторонах графика. Мы можем скрыть оси (spines) на правой и верхней сторонах графика с помощью метода set_visible.

ax1.plot(x, y)
ax1.set_title('Bottom-Left Spines')

## Hide the right and top spines
ax1.spines.right.set_visible(False)
ax1.spines.top.set_visible(False)

Настройка осей (spines) с границами, ограниченными диапазоном данных

В третьем подграфике мы отобразим оси (spines) с границами, ограниченными диапазоном данных. Мы можем ограничить длину каждой оси (spine) до диапазона данных с помощью метода set_bounds.

ax2.plot(x, y)
ax2.set_title('Spines with Bounds Limited to Data Range')

## Only draw spines for the data range, not in the margins
ax2.spines.bottom.set_bounds(x.min(), x.max())
ax2.spines.left.set_bounds(y.min(), y.max())
## Hide the right and top spines
ax2.spines.right.set_visible(False)
ax2.spines.top.set_visible(False)

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

Наконец, мы отобразим график с помощью метода show.

plt.show()

Резюме

В этом практическом занятии (lab) вы узнали, как настраивать оси (spines) в Matplotlib. В частности, вы научились отображать оси (spines) на определенных сторонах графика, скрывать оси (spines) на определенных сторонах графика и ограничивать длину каждой оси (spine) до диапазона данных. Настраивая оси (spines), вы можете создавать графики, которые лучше выделяют ваши данные и улучшают их общую читаемость.