programing

x축 또는 y축을 반전하는 방법

copysource 2022. 9. 15. 23:53
반응형

x축 또는 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()

치환된Aussie의 답변은 맞지만, 일반적으로는 문제의 단일 축을 반대로 하는 방법이 더 짧습니다.

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

어디서gca()함수는 현재 Axis 인스턴스를 반환하고[::-1]에 의해 리스트가 반전됩니다.

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

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

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()현재 수치를 업데이트하기 위해 필요합니다.

위에서 설명한 것과 유사한 또 다른 방법은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)

결과는 여기에 이미지 설명 입력다음과 같습니다.

또는 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]))

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

이 두 선은 각각 x축과 y축의 한계를 설정합니다.x축의 경우 첫 번째 인수1은 왼쪽 가장 큰 값을 설정하고 두 번째 인수r은 오른쪽 가장 큰 값을 설정합니다.y축의 경우 첫 번째 인수 b가 가장 낮은 값을 설정하고 두 번째 인수 t가 가장 높은 값을 설정합니다.

matplotlib를 사용하면 다음과 같은 세 가지 다른 방법으로 y축 역방향으로 그림을 그릴 수 있습니다. 1ymaximum 값을 y_min으로 지정하고 yminimum을 y_max로 지정한다.

plt.xlim(x_min,x_max)
plt.ylim(y_min,y_max)
plt.xlim(0, 80)
plt.ylim(100, 0)
  1. 축 지정

    plt.axis([x_min, x_max, y_min, y_max]) plt.axis([0, 80, 100, 0])

3. matplotlib의 gca() 함수를 사용하여 invert_yaxis() 함수를 호출한다.

ax = plt.gca()
ax.invert_yaxis()

언급URL : https://stackoverflow.com/questions/2051744/how-to-invert-the-x-or-y-axis

반응형