Обратная ось Y в PyPlot
У меня есть график точечной диаграммы с кучей случайных координат x, y. В настоящее время ось Y начинается с 0 и доходит до максимального значения. Я хотел бы, чтобы ось Y начиналась с максимального значения и доходила до 0.
points = [(10,5), (5,11), (24,13), (7,8)]
x_arr = []
y_arr = []
for x,y in points:
x_arr.append(x)
y_arr.append(y)
plt.scatter(x_arr,y_arr)
7 ответов:
появился новый API, который делает это еще проще.
plt.gca().invert_xaxis()и/или
plt.gca().invert_yaxis()
DisplacedAussieответ правильный, но обычно более короткий метод заключается в том, чтобы просто изменить одну ось в вопросе:
plt.scatter(x_arr, y_arr) ax = plt.gca() ax.set_ylim(ax.get_ylim()[::-1])здесь
gca()функция возвращает текущий экземпляр Axes и[::-1]переворачивает список.
использовать matplotlib.pyplot.axis ()
axis([xmin, xmax, ymin, ymax])Так что вы могли бы добавить что-то вроде этого в конце:
plt.axis([min(x_arr), max(x_arr), max(y_arr), 0])хотя вы можете захотеть прокладку на каждом конце, чтобы крайние точки не сидели на границе.
Если вы находитесь в ipython в
pylabрежим, затемplt.gca().invert_yaxis() show()the
show()требуется, чтобы обновить текущую цифру.
другой подобный метод к тем описанным выше использовать
plt.ylimнапример:plt.ylim(max(y_array), min(y_array))этот метод работает для меня, когда я пытаюсь объединить несколько наборов данных на Y1 и / или Y2
кроме того, вы можете использовать matplotlib.pyplot.axis () функция, которая позволяет инвертировать любую ось графика
ax = matplotlib.pyplot.axis() matplotlib.pyplot.axis((ax[0],ax[1],ax[3],ax[2]))или если вы предпочитаете только перевернуть ось X, то
matplotlib.pyplot.axis((ax[1],ax[0],ax[2],ax[3]))действительно, Вы можете инвертировать обе оси:
matplotlib.pyplot.axis((ax[1],ax[0],ax[3],ax[2]))

Comments