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