Python/Visualization

[Visualization] Heatmap 그리기

gangee 2022. 11. 13. 17:07

목차

    728x90
    반응형

    matplotlib, seaborn, pandas 를 이용한 heatmap 그리기

    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    import seaborn as sns
    plt.rcParams['figure.figsize'] = [10,8]
    sns.set(style='whitegrid', palette='pastel')
    data=sns.load_dataset('flights')
    data
    • seaborn에 내장되어있는 데이터프레임 불러오기

    data2 = data.pivot('year', 'month', 'passengers')
    data2.head()
    • pivote() : 기존의 data 변수를 pivot시켜서 재형성한 새로운 pandas.DataFrame형 변수
    • year => index, month => column, panssengers => value

    1. matplotlib을 이용한 heatmap 그리기

    plt.pcolor(data2)
    
    plt.xticks(np.arange(0.5, len(data2.columns), 1), data2.columns)
    plt.yticks(np.arange(0.5, len(data2.index), 1), data2.index)
    
    plt.title('Heatmap by plt.pcolor()', fontsize=20)
    plt.xlabel('Month', fontsize=14)
    plt.ylabel('Year', fontsize=14)
    plt.colorbar()
    
    plt.show()
    • plt.pcolor() : 히트맵을 그림
    • plt.colorbar() : 색상에 대한 정보 제시

    2. seaborn을 이용한 heatmap 그리기

    ax = sns.heatmap(data2, annot=True, fmt='d')
    plt.title('Heatmap of Flight by seaborn', fontsize=20)
    
    plt.show()
    • sns.heatmap() : 히트맵을 그림
    • annot : True로 해야 수치 표현 가능
    • fmt : 수치의 형식과 소수점자리 명시 ('d' = 정수 형태)
    • cmap을 통해 색상변경 가능 (ex) sns.heatmap(data2, cmap='YIGnbu'))

    3. pandas를 이용한 heatmap 그리기

    data2.style.background_gradient(cmap='summer')
    • dataframe의 숫자에 따라 직접 색을 다르게 입힐 수 있음

    728x90
    반응형