Мне нужна помощь с настройкой пределов оси 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.
python
matplotlib
Curious2learn
источник
источник
plt.show()
в конце, чтобы показать сюжет. Какую версию и какой бэкэнд вы используете?plt.ylim((25,250))
и другоеplt.ylim(ymax = 250, ymin = 25)
. Я используюAgg
бэкэнд.axisbg
теперь устарелоОтветы:
Попробуй это . Работает и для участков.
источник
None
которое оставляет вычисление для matplotlib, напримерaxes.set_ylim([ymin,None])
Ваш код работает и для меня. Однако другой обходной путь может заключаться в том, чтобы получить ось графика и затем изменить только значения y:
x1,x2,y1,y2 = plt.axis()
plt.axis((x1,x2,25,250))
источник
Одна вещь, которую вы можете сделать, это установить диапазон осей самостоятельно, используя matplotlib.pyplot.axis.
matplotlib.pyplot.axis
0,10 для диапазона оси х. 0,20 для диапазона оси Y.
или вы также можете использовать matplotlib.pyplot.xlim или matplotlib.pyplot.ylim
matplotlib.pyplot.ylim
источник
Вы можете создать экземпляр объекта
matplotlib.pyplot.axes
и вызватьset_ylim()
его. Это было бы что-то вроде этого:источник
Это сработало, по крайней мере, в версии 2.2.2:
Вероятно, это хороший способ настроить, например, только xmin, ymax и т. Д.
источник
Чтобы добавить к ответу @ Hima, если вы хотите изменить текущий предел x или y, вы можете использовать следующее.
Я нахожу это особенно полезным, когда хочу уменьшить или немного увеличить масштаб по умолчанию.
источник
Это должно работать. Ваш код работает для меня, как для Тамаса и Маноя Говиндана. Похоже, вы можете попытаться обновить Matplotlib. Если вы не можете обновить Matplotlib (например, если у вас недостаточно прав администратора), возможно, может
matplotlib.use()
помочь использование другого бэкэнда с .источник
matplotlib.use('PDF')
). Я использую версию, которая поставляется с последней версией Enthought Python Distribution. Можете ли вы посмотреть, работает ли он с бэкендом PDF. Спасибо!plt.savefig()
?aPlot =
вplt.subplot
очереди, это тоже работает для меня. Похоже, что если кто-то назначит подобласть для такой переменной, то должен использоваться какой-то другой способ установки пределов осей. Это правда?plt.ylim()
применяются ограничения по текущим осям, которые устанавливаются при этомplt.subplot()
. Я также не могу поверить, что меняplt.subplot()
заботит то, как используются возвращаемые оси (положить в переменную или нет и т. Д.). Так что я бы сказал, что это должно сработать; это работает на моей машине.Просто для тонкой настройки. Если вы хотите установить только одну из границ оси и оставить другую границу неизменной, вы можете выбрать один или несколько из следующих операторов
Взгляните на документацию для xlim и для ylim
источник
Если оси (генерируемые кодом под кодом, показанным в вопросе) делят диапазон с первыми осями, убедитесь, что вы задали диапазон после последнего графика этих осей.
источник