안녕하세요~ 꽁냥이에요. 오늘은 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 |
댓글