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

Python Matplotlib boxplot에서 상자 너비 조정하는 방법

Python의 Matplotlib에서 박스플롯(boxplot)을 그릴 때 상자(box)의 너비를 조절하고 싶다면 boxplot() 메서드의 widths 매개변수를 활용하면 됩니다. 이 매개변수에 튜플(tuple) 형태로 각 상자의 너비 값을 전달하면, 상자마다 서로 다른 너비를 지정할 수 있습니다.

구현 단계

  • 그림(figure) 크기를 설정하고, 서브플롯 주변과 사이의 여백(padding)을 조정합니다.
  • Pandas 데이터프레임을 생성합니다. 데이터프레임은 2차원이면서 크기가 가변적이고, 서로 다른 자료형을 담을 수 있는 표 형태의 데이터 구조입니다.
  • boxplot() 메서드에 widths 튜플을 전달하여 상자 수염 그림(box and whisker plot)을 그리며, 이때 각 상자의 너비를 조절합니다.
  • 그래프를 화면에 표시하려면 show() 메서드를 사용합니다.

예제 코드

import pandas as pd
import numpy as np
from matplotlib import pyplot as plt

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

data = pd.DataFrame({"Box1": np.random.rand(10), "Box2": np.random.rand(10)})
ax = plt.boxplot(data, widths=(0.25, 0.5))

plt.show()

코드 설명

위 예제에서는 난수 10개씩으로 이루어진 두 개의 열(Box1, Box2)을 가진 데이터프레임을 만들었습니다. 그리고 widths=(0.25, 0.5)를 지정하여 첫 번째 상자는 너비 0.25, 두 번째 상자는 너비 0.5로 서로 다르게 표현했습니다. 실행 결과 두 상자의 너비가 명확히 다른 것을 확인할 수 있습니다.

참고 사항

widths 매개변수에는 튜플뿐만 아니라 리스트나 스칼라 값도 전달할 수 있습니다. 모든 상자에 동일한 너비를 적용하려면 단일 숫자를, 상자별로 다른 너비를 적용하려면 상자 개수와 같은 길이의 시퀀스를 입력하면 됩니다.