[python] PyPlot의 역 Y 축

임의의 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]하고 목록을 반대로 바꿉니다.


답변

사용이 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()

show()그것이 현재의 모습을 업데이트하기 위해 필요합니다.


답변

산점도의 좌표축 객체에 의해 노출 된 함수를 사용할 수도 있습니다

scatter = plt.scatter(x, y)
ax = scatter.axes
ax.invert_xaxis()
ax.invert_yaxis()


답변

위에서 설명한 것과 비슷한 다른 방법 plt.ylim은 예를 들어 사용하는 것 입니다.

plt.ylim(max(y_array), min(y_array))

이 방법은 Y1 및 / 또는 Y2에서 여러 데이터 세트를 합성하려고 할 때 효과적입니다.


답변

ylim ()을 사용하는 것이 목적에 가장 적합한 방법 일 수 있습니다.

xValues = list(range(10))
quads = [x** 2 for x in xValues]
plt.ylim(max(quads), 0)
plt.plot(xValues, quads)

결과 :여기에 이미지 설명을 입력하십시오