Matplotlib: установить ось жесткой только на ось x или y

У меня сюжет выглядит так:

введите описание изображения здесь

Очевидно, что левая и правая стороны являются пустой тратой пространства, поэтому я устанавливаю

plt.axis('tight')

Но это дает мне такой сюжет:

введите описание изображения здесь

xlim выглядит прямо сейчас, но илим слишком плотный для сюжета.

Мне интересно, если я могу установить axis(tight) только на ось x в моем случае?

Таким образом, сюжет может выглядеть примерно так:

введите описание изображения здесь

Конечно, я могу сделать это вручную с помощью

plt.gca().set_xlim(left=-10, right=360)

Но я боюсь, что это не очень изящное решение.

Ответ 1

Вы хотите использовать автомасштабированный метод autoscale из класса matplotlib.axes.Axes.

enter image description here

Используя функциональный API, вы применяете жесткую ось x, используя

plt.autoscale(enable=True, axis='x', tight=True)

или если вы используете объектно-ориентированный API, вы будете использовать

ax = plt.gca()  # only to illustrate what 'ax' is
ax.autoscale(enable=True, axis='x', tight=True)

enter image description here

Для полноты axis kwarg может принимать 'x', 'y' или 'both', где по умолчанию 'both'.