Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Matplotlib에서 서브플롯 간 sharex·sharey 축 공유 설정을 해제하는 방법

Matplotlib에서 여러 축(axes)에 적용된 sharexsharey 옵션을 해제하려면 'none', 즉 False 또는 'none' 값을 지정하면 됩니다. 이렇게 하면 각 서브플롯(subplot)의 X축과 Y축이 서로 독립적으로 동작하게 되어, 하나의 축을 확대하거나 이동해도 다른 축에는 영향을 주지 않습니다.

참고로 sharexsharey 매개변수는 'all'(모든 축 공유), 'row'(행 단위 공유), 'col'(열 단위 공유), 'none'(공유 없음) 네 가지 값을 가질 수 있으며, 기본값은 False('none')입니다.

구현 단계

  • 그림(figure) 크기를 설정하고 서브플롯 사이 및 주변의 여백(padding)을 자동으로 조정합니다.

  • 행과 열의 개수를 담을 변수 rowscols를 초기화합니다.

  • plt.subplots()를 사용해 figure와 서브플롯 집합을 생성하되, sharex='none', sharey='none'을 지정하여 축 공유를 해제합니다.

  • rows=2, cols=4로 총 8개의 축을 반복(iterate)하며 접근합니다.

  • 각 축에 NumPy로 생성한 무작위 데이터를 플롯(plot)합니다.

  • 그림을 화면에 표시하려면 plt.show() 메서드를 호출합니다.

예제 코드

import matplotlib.pyplot as plt
import numpy as np

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

rows = 2
cols = 4

fig, axes = plt.subplots(rows, cols, sharex='none', sharey='none', squeeze=False)

for row in range(rows):
    for col in range(cols):
        axes[row][col].plot(np.random.rand(10), np.random.rand(10))

plt.show()

실행 결과

위 코드를 실행하면 2×4 배열로 배치된 8개의 서브플롯이 출력되며, 각 서브플롯의 X축과 Y축 눈금 범위가 서로 독립적으로 표시되는 것을 확인할 수 있습니다.

Matplotlib에서 서브플롯 간 sharex·sharey 축 공유 설정을 해제하는 방법