2010-01-12 3 views
153

임의의 x, y 좌표를 가진 산점도 그래프가 있습니다. 현재 Y 축은 0에서 시작하여 최대 값까지 올라갑니다. 나는 그래서 당신은 마지막에 다음과 같이 뭔가를 추가 할 수 있습니다 사용 matplotlib.pyplot.axis()PyPlot에서 역 Y 축

axis([xmin, xmax, ymin, ymax])

를 최대 값에서 시작하여 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) 

답변

332

더욱 단순하게 만드는 새로운 API가 있습니다.

plt.gca().invert_yaxis() 
show() 

show() 다음

plt.gca().invert_xaxis() 

및/또는

당신이 pylab 모드에서 ipython에 있다면
plt.gca().invert_yaxis() 
+4

나는 이것이 현재의 정답이라고 생각한다. – heltonbiker

+0

확실히 있습니다. –

+13

축을 반전하기 전에 축 제한 *을 설정해야합니다. 그렇지 않으면 다시 반전됩니다. – TheBigH

9

까지 이동합니다 Y 축 싶습니다 :

plt.axis([min(x_arr), max(x_arr), max(y_arr), 0]) 

극단적 인 포인트가 경계에 있지 않도록 양쪽 끝에 패딩을 넣을 수도 있습니다.

+0

위시 나는 모두 당신을 맞출 수 있습니다. 고마워요. – DarkAnt

26

DisplacedAussie의 대답은 정확하지만 일반적으로 짧은 방법은 문제의 하나의 축에 반대하는 것입니다 다음 gca() 함수는 현재 축 인스턴스를 반환하고 [::-1] 목록을 반전

plt.scatter(x_arr, y_arr) 
ax = plt.gca() 
ax.set_ylim(ax.get_ylim()[::-1]) 

합니다.

+2

저에게 더 좋은 대답 인 것 같습니다. :) – DisplacedAussie

+4

'plt.ylim (plt.ylim() [:: - 1])'나를 위해 일했다. –

9

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

3

상기와 또 다른 유사한 방법은 예를 들어 plt.ylim을 사용하는 것입니다 : 나는 또한 Y1 및/또는 Y2

1

에서 여러 데이터 세트를 복잡하게하려고하고있을 때이 방법은 나를 위해 작동

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

, 당신은 당신이 ONL 선호하는 경우

ax = matplotlib.pyplot.axis() 
matplotlib.pyplot.axis((ax[0],ax[1],ax[3],ax[2])) 

축 플롯의 반전 또는 수있는 matplotlib.pyplot.axis() 기능을 사용할 수 있습니다

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

: 당신의 목적을 위해 가장 좋은 방법이 될 수 ylim()를 사용하여

matplotlib.pyplot.axis((ax[1],ax[0],ax[3],ax[2])) 
1

: 예 당신은 두 축을 반전 할 수 있습니다, 실제로 다음,

matplotlib.pyplot.axis((ax[1],ax[0],ax[2],ax[3])) 

을 X 축 반전 결과는 다음과 같습니다. enter image description here