Matplotlib에서 그래프의 x축과 y축을 서로 바꾸고 싶다면, subplots() 메서드로 두 개의 서브플롯(subplot)을 만들고, 첫 번째 그래프의 곡선 데이터를 추출한 뒤 이를 두 번째 그래프에 반대로 적용하면 됩니다.
구현 단계
NumPy를 사용해 x, y 데이터 포인트를 생성합니다.
figure 객체를 생성하고 두 개의 서브플롯을 추가합니다.
각 축(서브플롯)에 제목을 설정합니다.
plot() 메서드로 x, y 데이터 포인트를 그립니다.
get_xdata()와 get_ydata() 메서드로 기존 곡선의 x, y 데이터를 추출합니다.
축을 전환하기 위해 첫 번째 곡선의 x_data와 y_data 값을 서로 바꾸어 두 번째 곡선에 설정합니다.
subplots_adjust() 또는 레이아웃 옵션으로 서브플롯 사이의 여백을 조정합니다.
show() 메서드로 figure를 화면에 표시합니다.
예제 코드
import numpy as np
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
x = np.linspace(-2, 2, 50)
y = np.sin(x)
f, axes = plt.subplots(2)
axes[0].set_title("First plot on axis")
curve, = axes[0].plot(x, y, c='r')
newx = curve.get_xdata()
newy = curve.get_ydata()
axes[1].set_title("Switch of first plot")
curve2, = axes[1].plot(x, y, c='r')
curve2.set_xdata(newy)
curve2.set_ydata(newx)
plt.show()실행 결과
위 코드를 실행하면 두 개의 서브플롯이 표시됩니다. 첫 번째 그래프는 원래의 sin 곡선을 보여주며, 두 번째 그래프는 x축과 y축이 서로 바뀐 형태로 출력됩니다. 이처럼 set_xdata()와 set_ydata() 메서드를 활용하면 이미 그려진 곡선의 데이터를 자유롭게 교체할 수 있어, 축 전환뿐만 아니라 실시간 데이터 업데이트에도 유용하게 사용할 수 있습니다.