본문 바로가기
파이썬 기초/데이터 프레임 다루기

데이터 프레임 모든 컬럼 시각화(plot plt)

by 조기정 2022. 4. 28.

 

import matplotlib.pyplot as plt
import seaborn as sns
import matplotlib as mpl
mpl.rcParams['axes.unicode_minus'] = False

# 그래프에서 한글 폰트 깨지는 문제에 대한 대처(전역 글꼴 설정)
from matplotlib import font_manager, rc
font_name = font_manager.FontProperties(fname='c:/Windows/Fonts/malgun.ttf').get_name()

한글 깨짐을 방지 위해서 위 코드를 먼저 실행할 수 있다면 실행하는 것이 좋다

# pip install koreanize_matplotlib # @ 한글 깨짐 방지
import math #math 모듈을 먼저 import해야 한다.    
import matplotlib.pyplot as plt
# import koreanize_matplotlib
# import seaborn as sns

    # 데이터 프레임 모든 컬럼 그리기
    # 함수명으로도 정의하기
def columns_plot(data): # y좌표
    
#     col_list_plt = list(data.select_dtypes(exclude = "object").columns)
    col_list_plt = list(data.select_dtypes(include = ["float","int"]).columns)
    x_plt_n = 3 # 한번에 그릴 plt x 축 수
    y_plt_n = 4 # 한번에 그릴 plt y 축 수
    w_space = 0.2 # float("0."+str(x_plt_n)
    h_space = 0.2 # float("0."+str(y_plt_n)
    
    if (x_plt_n < math.ceil(len(col_list_plt) / y_plt_n)):
        x_plt_n = math.ceil(len(col_list_plt) / y_plt_n)

    #plot 이쁘게 
    f, axes = plt.subplots(x_plt_n, y_plt_n)
    f.set_size_inches((20, 15))
    plt.subplots_adjust(wspace = w_space, hspace = h_space)

    for i in range(len(col_list_plt)):

        bb = math.ceil(((i )// y_plt_n))
        axes[bb][i - math.ceil(((i )// y_plt_n)) * y_plt_n].plot(data[col_list_plt[i]],label = col_list_plt[i] )#, color = 'blue', marker = 'o')
        axes[bb][i - math.ceil(((i )// y_plt_n)) * y_plt_n].set_title(col_list_plt[i])
    plt.rc('font', family='Malgun Gothic')
    plt.show()

 

위와 같은 식으로 컬럼들이 있으면 데이털르 한번에 볼 수 있게 함수를 만들었고,

columns_plot(data)

이 코드만 실행하면 해당 데이터 프레임의 값들을 다 보여준다. 컬럼명이 각 plot의 이름이 된다.

 

또 데이터 각 컬럼을 좀 크게 보고 싶으면

아까 코드의 이 부분을 

 

이 두가지 부분만 수정하면 된다.

그러면 이런식으로 그래프가 나오게 된다.

 

장점은 오류가 안나게 if문으로 컬럼문 잘 수정했고 배치도 x축 몇개 y축 몇개 할것인지 자동으로 계산하게 만들어둬서 빠르게 코딩하고 싶을때 일일히 차트 안그려보고 데이터를 시각화하여 보면서 코딩할 수 있어서 좋을것 같네요 ~~!

 

 주피터 노트북의 기본배경을 검정색으로 하다보니 글씨가 잘 안보이는데 테마에 따라서 더 이쁘게 보일겁니다..! 오늘도 즐거운 코딩 되십숑