안녕하세요~ 꽁냥이에요. 오늘은 Matplotlib의 hist2d를 이용하여 2차원 히스토그램(2d Histogram)을 그리는 방법을 소개하려고 합니다.
- 목차 -
1. Matplotlib hist2d 기본
hist2d는 2차원 히스토그램이므로 당연히 x, y인자를 받아야 합니다. 참고로 Pandas 시리즈 객체를 이용한다면 그 안에 NaN가 없어야 합니다.
import matplotlib.pyplot as plt
import seaborn as sns
penguins_df = sns.load_dataset('penguins')
penguins_df = penguins_df.dropna() ## 결측치 제거
fig = plt.figure(figsize=(7,7))
fig.set_facecolor('white')
h = plt.hist2d(
x=penguins_df['flipper_length_mm'], ## x축 데이터
y=penguins_df['body_mass_g'], ## y축 데이터
)
plt.show()
hist2d의 기본 사용법을 알아보았는데요. 아직 뭔가 허전한 느낌이네요. 이제 hist2d의 여러 인자와 몇 가지 코드를 추가하여 좀 더 멋진 2차원 히스토그램을 그려봅시다.
2. Matplotlib hist2d 다양한 기능
이제 좀 더 나은 2차원 히스토그램을 그려보려고 합니다. hist2d에는 2차원 히스토그램을 꾸밀 수 있는 여러 인자가 있어요. 컬러맵을 바꾸는 cmap, 구간 수 bins 등 말이죠~. 아래 코드를 통해 사용법을 확인해보세요.
import matplotlib.pyplot as plt
import seaborn as sns
penguins_df = sns.load_dataset('penguins')
penguins_df = penguins_df.dropna() ## 결측치 제거
fig = plt.figure(figsize=(7,7))
fig.set_facecolor('white')
h = plt.hist2d(
x=penguins_df['flipper_length_mm'], ## x축 데이터
y=penguins_df['body_mass_g'], ## y축 데이터
bins=50, ## 빈 개수
cmap='cool', ## 컬러맵
)
cur_ax = plt.gca() ## 현재 Axes
fig.colorbar(h[3],ax=cur_ax) ## 컬러바 추가
plt.show()
컬러맵을 다른 것을 쓰고 싶으신 분들은 여기를 참고하셔서 cmap인자를 설정하시면 됩니다. 번외로 꽁냥이가 원하는 컬러맵을 추가해 보았어요.
import matplotlib.colors as mcl
## hsv 컬러를 이용한 컬러맵 커스터마이징
h = 24
s = 0.99
v = 1
colors = [
mcl.hsv_to_rgb((h/360,0,v)),
mcl.hsv_to_rgb((h/360,0.9,v)),
mcl.hsv_to_rgb((h/360,1,v))
]
cmap = mcl.LinearSegmentedColormap.from_list('my_cmap',colors,gamma=2)
fig = plt.figure(figsize=(8,8))
fig.set_facecolor('white')
penguins_df = sns.load_dataset('penguins')
penguins_df = penguins_df.dropna() ## 결측치 제거
fig = plt.figure(figsize=(7,7))
fig.set_facecolor('white')
h = plt.hist2d(
x=penguins_df['flipper_length_mm'], ## x축 데이터
y=penguins_df['body_mass_g'], ## y축 데이터
bins=50, ## 빈 개수
cmap=cmap, ## 컬러맵
)
cur_ax = plt.gca() ## 현재 Axes
fig.colorbar(h[3],ax=cur_ax) ## 컬러바 추가
plt.show()
이번 포스팅에서는 Matplotlib에서 2차원 히스토그램을 그리는 방법을 알아보았습니다. 부디 이번 포스팅이 도움이 되시길 바라며 이상 포스팅 마치겠습니다. 감사합니다~
'데이터 분석 > 시각화' 카테고리의 다른 글
[Seaborn] 8. Strip Plot(Jitter Plot) 그리기 (feat. stripplot) (0) | 2022.08.12 |
---|---|
[Seaborn] 7. 2차원 히스토그램(2d Histogram) 그리기 (feat. histplot) (0) | 2022.08.12 |
[Seaborn] 6. 히스토그램(Histogram) 그리기 (feat. histplot) (0) | 2022.08.11 |
[Seaborn] 5. 바이올린 플롯(Violin Plot) 그리기 (0) | 2022.08.10 |
[Seaborn] 4. 박스 플롯(Box Plot) 그리기 (feat. boxplot) (0) | 2022.08.09 |
댓글