Подтвердить что ты не робот

Координатор Matplotlib. sys начало вверху слева

Как я могу перевернуть начало графика matplotlib в верхнем левом углу - в отличие от нижнего-левого по умолчанию? Я использую matplotlib.pylab.plot для создания сюжета (хотя, если есть еще одна процедура построения графика, которая более гибкая, сообщите мне).

Я ищу эквивалент команды matlab: axis ij;

Кроме того, я потратил пару часов на серфинг для справки matplotlib и google, но не получил ответа. Некоторая информация о том, где я могла бы найти ответ, также была бы полезной.

4b9b3361

Ответ 1

Для изображения или контурного сюжета вы можете использовать ключевое слово origin = None | 'lower' | 'upper' и для линейного графика вы можете установить максимальные значения ylimits.

from pylab import *
A = arange(25)/25.
A = A.reshape((5,5))

figure()
imshow(A, interpolation='nearest', origin='lower')

figure()
imshow(A, interpolation='nearest')

d = arange(5)
figure()
plot(d)
ylim(5, 0)

show()

Ответ 2

axis ij просто увеличивает ось y вниз, а не вверх, правильно? Если это так, то matplotlib.axes.invert_yaxis() может быть все, что вам нужно - но я не могу проверить это прямо сейчас.

Если это не сработает, я нашел почтовую рассылку, предполагающую, что

setp(gca(), 'ylim', reversed(getp(gca(), 'ylim')))

может делать то, что вы хотите походить на axis ij.

Ответ 3

Самый лучший способ - использовать:

plt.gca().invert_yaxis()

Происхождение работает только для imshow.

Ответ 4

Ниже приведен базовый способ достижения этого

ax=pylab.gca()

ax.set_ylim(ax.get_ylim()[::-1])

Ответ 5

Это

plt.ylim(max(plt.ylim()), min(plt.ylim()))

имеет преимущество перед этим

plt.gca().invert_yaxis()

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