<질문>
임의의 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>
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)
<답변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는 최상위 값을 설정합니다.
'개발 > Python' 카테고리의 다른 글
[파이썬] NumPy 배열을 파이썬 리스트로 변환 (0) | 2023.01.22 |
---|---|
[파이썬] 딕셔너리를 문자열로 변환하고 다시 변환하는 방법 (0) | 2023.01.22 |
[파이썬] 리스트에서 교차점을 찾는 방법? (0) | 2023.01.22 |
[파이썬] os.path.join()이 작동하지 않는 이유? (0) | 2023.01.22 |