Вопрос-Ответ

How to set the axis limits

Как установить ограничения оси

Мне нужна помощь с установкой границ оси y в matplotlib. Вот код, который я безуспешно пробовал.

import matplotlib.pyplot as plt

plt.figure(1, figsize = (8.5,11))
plt.suptitle('plot title')
ax = []
aPlot = plt.subplot(321, axisbg = 'w', title = "Year 1")
ax.append(aPlot)
plt.plot(paramValues,plotDataPrice[0], color = '#340B8C',
marker = 'o', ms = 5, mfc = '#EB1717')
plt.xticks(paramValues)
plt.ylabel('Average Price')
plt.xlabel('Mark-up')
plt.grid(True)
plt.ylim((25,250))

С данными, которые у меня есть для этого графика, я получаю ограничения по оси y в 20 и 200. Однако я хочу, чтобы ограничения были равны 20 и 250.

Переведено автоматически
Ответ 1

Получить текущую ось через plt.gca(), а затем установить ее ограничения:

ax = plt.gca()
ax.set_xlim([xmin, xmax])
ax.set_ylim([ymin, ymax])
Ответ 2

Единственное, что вы можете сделать, это установить диапазон осей самостоятельно, используя matplotlib.pyplot.axis.

matplotlib.pyplot.axis

from matplotlib import pyplot as plt
plt.axis([0, 10, 0, 20])

0,10 соответствует диапазону по оси x.
0,20 соответствует диапазону по оси y.

или вы также можете использовать matplotlib.pyplot.xlim или matplotlib.pyplot.ylim

matplotlib.pyplot.ylim

plt.ylim(-2, 2)
plt.xlim(0,10)
Ответ 3

Другой обходной путь - получить оси графика и переназначить, изменив только значения y:

x1,x2,y1,y2 = plt.axis()  
plt.axis((x1,x2,25,250))
Ответ 4

Вы можете создать экземпляр объекта из matplotlib.pyplot.axes и вызвать set_ylim() для него. Это было бы что-то вроде этого:

import matplotlib.pyplot as plt
axes = plt.axes()
axes.set_ylim([0, 1])
python matplotlib