Как задать пределы осей в 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.
5 ответ(ов)
Чтобы получить текущую ось с помощью plt.gca()
, а затем задать её пределы, вы можете использовать следующий код:
ax = plt.gca() # Получаем текущую ось
ax.set_xlim([xmin, xmax]) # Устанавливаем пределы по оси X
ax.set_ylim([ymin, ymax]) # Устанавливаем пределы по оси Y
Это позволит вам задать границы отображаемой области графика для обеих осей. Не забудьте заменить xmin
, xmax
, ymin
и ymax
на нужные значения.
Вы можете установить диапазон осей самостоятельно, использовав функцию 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)
Таким образом, вы можете настроить пределы каждой из осей независимо друг от друга.
Еще одно решение заключается в том, чтобы получить оси графика и переназначить их, изменив только значения по оси y:
x1, x2, y1, y2 = plt.axis()
plt.axis((x1, x2, 25, 250))
Вы можете создать объект из matplotlib.pyplot.axes
и вызвать метод set_ylim()
на этом объекте. Это будет выглядеть примерно так:
import matplotlib.pyplot as plt
axes = plt.axes()
axes.set_ylim([0, 1])
Это работало, по крайней мере, в версии matplotlib 2.2.2:
plt.axis([None, None, 0, 100])
Пожалуй, это отличный способ задать, например, только xmin и ymax и т. д.
Как задать размер шрифта заголовка фигуры и меток осей?
Сохранить график в файл изображения вместо его отображения
Как сделать графики Matplotlib отображаемыми внутри IPython-ноутбука?
Когда использовать cla(), clf() или close() для очистки графика?
Размер маркеров в графиках рассеяния с помощью pyplot