[Python][Pandas] dataframe 시각화

도도요닝·2022년 8월 15일
0

python

목록 보기
7/12

Pandas 시각화

Colab한글 깨짐 현상 해결 방법

  • Step 1. 폰트 설치 (아래 코드 실행)
    Step 2. 런타임 재시작 (런타임 > 런타임 다시 시작)
    Step 3. 라이브러리 임포트 (폰트 설치 이후 코드 실행)
# 폰트 설치
!apt-get update -qq
!apt-get install fonts-nanum* -qq
!rm ~/.cache/matplotlib -rf입력하세요
#폰트 설정 #정해져 있는 코드 #한글이 깨지지 않도록 하는 코드 
path = '/usr/share/fonts/truetype/nanum/NanumGothic.ttf' # 나눔 고딕
font_name = fm.FontProperties(fname=path, size=20).get_name() # 기본 폰트 사이즈 : 20
plt.rc('font', family=font_name)
fm._rebuild()
mpl.rcParams['axes.unicode_minus'] = False
%matplotlib inline

시각화 하기 위해 필요한 라이브러리

import pandas as pd
import numpy as np
import matplotlib.pylab as plt
import matplotlib.font_manager as fm
import matplotlib as mpl 
import seaborn as sns

plot 함수

  • plot 데이터 집합을 도표, 그래프로 표시
  • plot 함수는 kind라는 옵션으로 다양한 그래프 시각화 가능
    • kind 옵션: line bar hist box pie scatter area

라인(line)

#figsize 그래프의 크기 결정
df.plot(kind ='line', figsize=(가로,세로), title ='제목')
#원하는 컬럼만 따로 지정해서 그리기 
df1['원하는 컬럼명'].plot(kind='line', figsize(가로,세로), title='제목')

바(bar)

#막대 그래프
#컬럼별로 평균을 냄
groupby한 컬럼| 컬럼1 |컬럼2 |컬럼3
해당1           평균   평균   평균
해당2           평균   평균   평균
해당3           평균   평균   평균
bar_df = df1.groupby(df1.컬럼).mean()
bar_df.plot(kind='bar', figsize=(가로,세로), title='제목')
#전치 연산
#행과 열을 바꿈
bar_df.T.plot(kind='bar', figsize=(가로,세로), title='제목')

히스토그램 (hist)

  • 빈도수를 알아볼 때 사용
df1.plot(kind='hist', figsize=(가로,세로), title = '제목')

#빈(bin)개수 지정 #이진법
df1.plot(bins=숫자, kind='hist', figsize=(가로,세로), title = '제목')

박스(box)

df1.plot(kind ='box', figsize=(가로,세로), title = '제목')

파이(pie)

#value_counts : 얼마나 반복되는 지
pie_df=df2['컬럼'].value_counts()
df1.plot(kind ='pie', figsize=(가로,세로), title = '제목')
#레이블 추가 
#autopct = %자동계산, 소수점 첫째 자리까지 계산
#font 는 %값 나타냄
df1.plot(kind ='pie', figsize=(가로,세로), title = '제목',autopct='%.1f%%', fontsize=20)

산점도(scatter)

#나이에 따른 타이타닉 승선 요금
f2.plot(kind='scatter', figsize=(가로,세로) , x='age', y='fare', title='나이에 따른 타이타닉 승선 요금')
#버블차트
#버블에 100을 곱하여 더 크게 볼 수 있음 
df2.plot(kind='scatter', figsize=(15,8) , x='age', y='fare', title='나이에 따른 타이타닉 승선 요금', s=df2['pclass']*100)

0개의 댓글