Python에서 dataframe 시각화를 위해 보통 matplotlib과 seaborn 패키지를 사용한다.
간단히 설명하면 matplotlib은 그래프를 그리기 위함이고 seaborn은 그래프를 조금 더 다양한 형태로 이쁘게 표현하기 위한 목적으로 쓰인다.
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
## 아래 리스트는 y값, x값은 인덱스
plt.plot([1,2,3,4])
plt.show()
## plot 사이즈 지정
plt.figure(figsize=(9,6))
x = np.arange(-10,10,0.01) ## -10부터 10까지 0.01간격으로 랜덤수 발생
plt.plot(x, x**2)
x = np.arange(-10,10,0.1)
## 맥에서 그래프에 한글 제목이나 label명 지정시 깨져나와서 폰트를 변경해줌
plt.rc('font', family='AppleGothic')
sns.set(font='AppleGothic',
rc={"axes.unicode_minus":False},
style='darkgrid')
plt.title('f(x) = x^3 그래프')
plt.axis([0,10,0,1000]) ## [x축 시작좌표, x축 끝좌표, y축 시작좌표, y축 끝좌표] 만 보여줌
plt.xticks([1,2,3,4,5,6,7,8,9]) ## 그래프의 x축 눈금
plt.yticks([i for i in range(0,1000, 100)]) ## y축 눈금
plt.xlabel('xx') ## x축 레이블
plt.ylabel('yy') ## y축 레이블
plt.show()
x = np.arange(-10,10,0.01)
plt.axis([0,10,0,100])
plt.title('그래프')
plt.plot(x, x**2, label='trend' ) ## 범례명 trend 지정, 아래 legend() 같이 설정!
plt.legend()
plt.show()
x = np.arange(20) ## 0~19 까지
y = np.random.randint(0,20,20) ## 0이상 20미만 사이 중 하나의 값 랜덤하게 20번 발생
plt.yticks([0,5,10,15,20])
plt.xticks([0,5,10,15,20])
plt.axis([0,20,0,20])
plt.plot(x,y)
plt.show()
plt.scatter(x,y)
plt.show()
plt.bar(x,y)
plt.xticks([i for i in rang(0,20,1)])
plt.show()
plt.box((x,y))
plt.title('box plot x y')
plt.show()
z= [1,2,3,4]
plt.pie(z, labels =['one','two','three','four','five'])
plt.xticks([i for i in range(0,20,2)])
plt.hist(y, bins = np.arrange(0,20,2))
plt.show()
sns.kdeplot(y, shade=Ture)
plt.show()
vote_df = pd.DataFrame({'name' : ['Andy','Bob', 'Cat'], 'vote':[True,True,False]})
sns.countplot(x=vote_df['vote'])
plt.show()
s=sns.catplot(x ='WHO Region', y='Confirmed', data=covid) #kind='violin')
s.fig.set_size_inches(8,5)
plt.xticks(rotation=90) ## x label 90도 회전
plt.show()
plt.figure(figsize =(10,7))
sns.stripplot(x='WHO Region, y='Recovered', data=covid)
plt.show()
heat = covid.corr() ## 상관계수로 나태내는 함수
sns.heatmap(heat)
plt.show()