[업무 지식]/Seaborn
[histplot] Stacked histogram on a log scale
에디터 윤슬
2024. 11. 9. 17:46
import seaborn as sns
import matplotlib as mpl
import matplotlib.pyplot as plt
sns.set_theme(style="ticks")
diamonds = sns.load_dataset("diamonds")
diamonds
데이터셋 설명
- 다이아몬드 데이터셋은 여러 가지 다이아몬드 속성을 포함하고 있습니다:
- price: 다이아몬드의 가격 (연속형 변수).
- cut: 다이아몬드의 컷 품질 (범주형 변수: Ideal, Premium, Good 등).
- 그 외에도 캐럿 무게(carat), 투명도(clarity), 색상(color) 등의 변수가 있습니다.
- 시각화에서는 가격(price) 변수를 기준으로 컷(cut) 품질에 따른 분포를 보여주고 있습니다. 이를 위해 hue="cut" 옵션을 사용해 각 컷 품질별로 다른 색상을 적용했습니다.
seaborn
f, ax = plt.subplots(figsize=(7, 5))
sns.despine(f)
sns.histplot(
diamonds,
x="price", hue="cut",
multiple="stack",
palette="light:m_r",
edgecolor=".3",
linewidth=.5,
log_scale=True,
)
ax.xaxis.set_major_formatter(mpl.ticker.ScalarFormatter())
ax.set_xticks([500, 1000, 2000, 5000, 10000])
설명
- sns.load_dataset("diamonds"): Seaborn에서 제공하는 다이아몬드 데이터셋을 불러옵니다. 이 데이터셋에는 약 50,000개의 다이아몬드 정보가 포함되어 있으며, 가격(price), 캐럿(carat), 컷(cut), 색상(color), 투명도(clarity) 등의 변수를 포함하고 있습니다.
- sns.set_theme(style="ticks"): 축에 눈금이 있는 테마를 설정합니다.
- sns.despine(f): 그래프의 상단과 오른쪽 테두리를 제거하여 깔끔한 디자인을 만듭니다.
- sns.histplot(): 히스토그램을 생성하는 함수로서 다음과 같은 옵션을 사용합니다:
- x="price": 다이아몬드의 가격을 x축에 표시.
- hue="cut": 다이아몬드의 컷 등급(예: Ideal, Premium 등)에 따라 색상을 구분.
- multiple="stack": 각 컷 등급별로 막대를 누적하여 표시.
- palette="light:m_r": 밝은 빨간색 계열의 팔레트를 사용해 각 컷 등급을 구분.
- log_scale=True: x축을 로그 스케일로 변환하여 넓은 가격 범위를 효과적으로 시각화.
- ax.xaxis.set_major_formatter(mpl.ticker.ScalarFormatter()): x축 눈금을 일반 숫자 형식으로 표시하여 과학적 표기법(지수 표기)을 방지합니다.
- ax.set_xticks([500, 1000, 2000, 5000, 10000]): 로그 스케일에 맞는 적절한 눈금을 설정합니다.
- 다이아몬드 가격은 매우 큰 범위로 분포되어 있기 때문에 log_scale=True 옵션을 사용하여 로그 스케일로 변환합니다. 이는 가격 범위가 넓을 때 작은 값과 큰 값을 동시에 시각화할 수 있도록 도와줍니다.
적용 사례
- 보석 시장 분석:
- 보석상이나 주얼리 판매자는 다이아몬드 가격 분포를 분석하여 특정 컷 품질(예: Ideal 컷)이 어느 가격대에서 주로 판매되는지 파악할 수 있습니다. 이를 통해 가격 전략을 세우거나 시장 트렌드를 이해할 수 있습니다.
- 소비자 행동 분석:
- 다이아몬드를 구매하려는 소비자는 이 데이터를 통해 예산 내에서 어느 컷 품질의 다이아몬드를 구매할 수 있는지 참고할 수 있습니다.
- 재고 관리:
- 주얼리 판매업체는 이와 같은 분석을 통해 특정 가격대나 컷 품질에서 재고를 얼마나 확보해야 할지 결정할 수 있습니다.
- 럭셔리 상품 시장 조사:
- 럭셔리 상품 시장 연구자들은 제품 품질(여기서는 컷 품질)과 가격 분포 간의 관계를 분석하여 고급 제품 시장에서 소비자 선호도를 이해할 수 있습니다.