개발/Python

[파이썬] x축 또는 y축을 반전시키는 방법

MinorMan 2023. 1. 22. 03:30
반응형

<질문>

임의의 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)

<답변1>

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

plt.gca().invert_xaxis()

및/또는

plt.gca().invert_yaxis()

<답변2>

DisplacedAussie의 대답은 정확하지만 일반적으로 더 짧은 방법은 문제의 단일 축을 뒤집는 것입니다.

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

어디gca()함수는 현재 Axes 인스턴스를 반환하고[::-1]목록을 뒤집습니다.


<답변3>

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

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

<답변4>

사용matplotlib.pyplot.axis()

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

따라서 마지막에 다음과 같이 추가할 수 있습니다.

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

극단 지점이 경계에 있지 않도록 각 끝에 패딩을 원할 수도 있습니다.


<답변5>

당신이 ipython에 있다면pylab모드, 다음

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

그만큼show()현재 그림을 업데이트하려면 필요합니다.


<답변6>

위에서 설명한 것과 유사한 또 다른 방법은 다음을 사용하는 것입니다.plt.ylim예를 들어:

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

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


<답변7>

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

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

결과:enter image description here


<답변8>

또는 다음을 사용할 수 있습니다.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]))

<답변9>

matplotlib를 사용하는 경우 다음을 시도해 볼 수 있습니다. matplotlib.pyplot.xlim(l, r) matplotlib.pyplot.ylim(b, t)

이 두 줄은 각각 x축과 y축의 한계를 설정합니다. x 축의 경우 첫 번째 인수 l은 가장 왼쪽 값을 설정하고 두 번째 인수 r은 가장 오른쪽 값을 설정합니다. y 축의 경우 첫 번째 인수 b는 최하위 값을 설정하고 두 번째 인수 t는 최상위 값을 설정합니다.

반응형