Programing

matplotlib에서 서브 플롯에 대해 xlim 및 ylim을 설정하는 방법

crosscheck 2020. 6. 12. 21:31
반응형

matplotlib에서 서브 플롯에 대해 xlim 및 ylim을 설정하는 방법


이 질문에는 이미 답변이 있습니다.

matplotlib에서 X 및 Y 축을 제한하고 싶지만 특정 하위 플롯을 원합니다. 보시다시피 서브 플롯 그림 자체에는 축 속성이 없습니다. 예를 들어 두 번째 줄거리의 한계 만 변경하고 싶습니다!

import matplotlib.pyplot as plt
fig=plt.subplot(131)
plt.scatter([1,2],[3,4])
fig=plt.subplot(132)
plt.scatter([10,20],[30,40])
fig=plt.subplot(133)
plt.scatter([15,23],[35,43])
plt.show()

상태 머신 인터페이스뿐만 아니라 matplotlib에 대한 약간의 OO 인터페이스를 배워야합니다. 거의 모든 plt.*기능은 기본적으로 수행되는 얇은 래퍼입니다 gca().*.

plt.subplotaxes객체를 반환 합니다. 좌표축 객체에 대한 참조가 있으면 직접 플롯하고 한계를 변경할 수 있습니다.

import matplotlib.pyplot as plt

ax1 = plt.subplot(131)
ax1.scatter([1, 2], [3, 4])
ax1.set_xlim([0, 5])
ax1.set_ylim([0, 5])


ax2 = plt.subplot(132)
ax2.scatter([1, 2],[3, 4])
ax2.set_xlim([0, 5])
ax2.set_ylim([0, 5])

원하는만큼의 축에 대해서도 마찬가지입니다.

또는 더 나은 방법으로 루프로 마무리하십시오.

import matplotlib.pyplot as plt

DATA_x = ([1, 2],
          [2, 3],
          [3, 4])

DATA_y = DATA_x[::-1]

XLIMS = [[0, 10]] * 3
YLIMS = [[0, 10]] * 3

for j, (x, y, xlim, ylim) in enumerate(zip(DATA_x, DATA_y, XLIMS, YLIMS)):
    ax = plt.subplot(1, 3, j + 1)
    ax.scatter(x, y)
    ax.set_xlim(xlim)
    ax.set_ylim(ylim)

참고 URL : https://stackoverflow.com/questions/15858192/how-to-set-xlim-and-ylim-for-a-subplot-in-matplotlib

반응형