Как установить диапазон оси (xlim, ylim) в Matplotlib
Matplotlib - одна из наиболее широко используемых библиотек визуализации данных в Python. Большая часть популярности Matplotlib связана с его параметрами настройки - вы можете настроить практически любой элемент из его иерархии объектов.
В этом руководстве мы рассмотрим, как установить диапазон оси (xlim, ylim) в Matplotlib, чтобы обрезать или расширить представление до определенных пределов.
Создание сюжета
Сначала создадим простой сюжет:
import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots(figsize=(12, 6))
x = np.arange(0, 10, 0.1)
y = np.sin(x)
z = np.cos(x)
ax.plot(y, color='blue', label='Sine wave')
ax.plot(z, color='black', label='Cosine wave')
plt.show()
Здесь мы построили две синусоидальные функции, начиная с 0
и заканчивая 100
с шагом 0.1
. Запуск этого кода дает:
Теперь мы можем настроить диапазон этой оси, которая в настоящее время идет от 0
до 100
.
Установка диапазона оси в Matplotlib
Теперь, если мы хотим усечь это представление на меньшее или даже большее, мы можем настроить пределы X и Y. Доступ к ним можно получить либо через экземпляр PyPlot, либо через экземпляр Axes
.
Как установить X-Limit (xlim) в Matplotlib
Давайте сначала установим X-limit, используя как PyPlot, так и экземпляры Axes
. Оба эти метода принимают кортеж - левый и правый пределы. Так, например, если мы хотим обрезать представление, чтобы отображать только данные в диапазоне 25-50 по оси X, мы бы использовали xlim([25, 50])
:
fig, ax = plt.subplots(figsize=(12, 6))
x = np.arange(0, 10, 0.1)
y = np.sin(x)
z = np.cos(x)
ax.plot(y, color='blue', label='Sine wave')
ax.plot(z, color='black', label='Cosine wave')
plt.xlim([25, 50])
Это ограничивает просмотр по оси X данными между 25
и 50
и приводит к:
Такого же эффекта можно добиться, задав их через объект ax
. Таким образом, если у нас несколько Axes
, мы можем установить лимит для них отдельно:
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure(figsize=(12, 6))
x = np.arange(0, 10, 0.1)
y = np.sin(x)
z = np.cos(x)
ax = fig.add_subplot(121)
ax2 = fig.add_subplot(122)
ax.set_title('Full view')
ax.plot(y, color='blue', label='Sine wave')
ax.plot(z, color='black', label='Cosine wave')
ax2.set_title('Truncated view')
ax2.plot(y, color='blue', label='Sine wave')
ax2.plot(z, color='black', label='Cosine wave')
ax2.set_xlim([25, 50])
plt.show()
Как установить Y-Limit (ylim) в Matplotlib
Теперь давайте установим Y-Limit. Этого можно добиться с помощью тех же двух подходов:
ax.plot(y, color='blue', label='Sine wave')
ax.plot(z, color='black', label='Cosine wave')
plt.ylim([-1, 0])
Или:
ax.plot(y, color='blue', label='Sine wave')
ax.plot(z, color='black', label='Cosine wave')
ax.set_ylim([-1, 0])
Оба результата приводят к:
Вывод
В этом руководстве мы рассмотрели, как установить диапазон оси (т.е. пределы X и Y) с помощью Matplotlib в Python.