установка предела оси Y в matplotlib

Мне нужна помощь в установлении пределов оси 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.

Комментарии к вопросу (4)

Попробуй это . Работает и для субплотов .

axes = plt.gca()
axes.set_xlim([xmin,xmax])
axes.set_ylim([ymin,ymax])
Комментарии (2)

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

x1, x2, y1, y2 = plt.axis () plt.axis ((x1, x2,25,250))

Комментарии (0)

Одна вещь, которую вы можете сделать, это установить диапазон своей оси самостоятельно, используя matplotlib.pypplot.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)
Комментарии (0)

Чтобы добавить к ответу @Hima, если вы хотите изменить текущий предел x или y, вы можете использовать следующее.

import numpy as np # you probably alredy do this so no extra overhead
fig, axes = plt.subplot()
axes.plot(data[:,0], data[:,1])
xlim = axes.get_xlim()
# example of how to zoomout by a factor of 0.1
factor = 0.1 
new_xlim = (xlim[0] + xlim[1])/2 + np.array((-0.5, 0.5)) * (xlim[1] - xlim[0]) * (1 + factor) 
axes.set_xlim(new_xlim)

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

Комментарии (0)

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

импортировать matplotlib.pyplot как plt
оси = plt.axes ()
axes.set_ylim ([0, 1])
Комментарии (0)

Это работало по крайней мере в версии matplotlib 2.2.2:

plt.axis([None, None, 0, 100])

Вероятно, это хороший способ настроить, например, только xmin и ymax и т. Д.

Комментарии (0)

Это должно работать. Ваш код работает для меня, как для Tam & # 225; s и Manoj Govindan. Похоже, вы можете попытаться обновить Matplotlib. Если вы не можете обновить Matplotlib (например, если у вас недостаточно административных прав), возможно, может помочь использование другого бэкэнда с matplotlib.use ().

Комментарии (4)

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

Комментарии (0)