임의의 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)
답변
이것을 더욱 간단하게하는 새로운 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]
하고 목록을 반대로 바꿉니다.
답변
axis([xmin, xmax, ymin, ymax])
그래서 당신은 끝에 다음과 같은 것을 추가 할 수 있습니다 :
plt.axis([min(x_arr), max(x_arr), max(y_arr), 0])
극단적 인 점이 경계에 있지 않도록 양쪽 끝에 패딩을 원할 수도 있습니다.
답변
ipython pylab
모드 에 있다면
plt.gca().invert_yaxis()
show()
는 show()
그것이 현재의 모습을 업데이트하기 위해 필요합니다.
답변
산점도의 좌표축 객체에 의해 노출 된 함수를 사용할 수도 있습니다
scatter = plt.scatter(x, y)
ax = scatter.axes
ax.invert_xaxis()
ax.invert_yaxis()