Pandas 04. 시각화 도구

woniwon·2022년 8월 4일
0

Pandas

목록 보기
5/5

Matplotlib - 기본 그래프 도구

선 그래프

import pandas as pd
import matplotlib.pyplot as plt

filepath='C:/Users/OneDrive/바탕 화면/시도별 전출입 인구수.xlsx'
df =pd.read_excel(filepath,engine='openpyxl',header=0)

#fillna()메소드, method="ffill"옵션 사용시 누락 데이터의 바로 앞에 위치한 행의 데이터 값으로 채움
df=df.fillna(method="ffill")

#서울에서 다른 지역으로 이동한 데이터만 추출하여 정리
mask=(df['전출지별']=='서울특별시') & (df['전입지별']!='서울특별시')
df_seoul=df[mask]
df_seoul=df_seoul.drop(['전출지별'],axis=1)
df_seoul.rename({'전입지별':'전입지'},axis=1, inplace=True)
df_seoul.set_index('전입지',inplace=True)

#위에서 전입지가 경기도인 행 데이터를 선택해 sr_one에 저장
sr_one=df_seoul.loc['경기도']

#plot()함수 : 선 그래프를 그림
plt.plot(sr_one.index,sr_one.values)

#시리즈, 데이터프레임 객체를 plot()함수에 직접 입력하기도 가능
#plt.plot(sr_one)

#차트 제목, 축 이름 추가
sr_one = df_seoul.loc['경기도']
plt.plot(sr_one.index,sr_one.values)
plt.title('서울->경기 인구 이동')
plt.xlabel('기간')
plt.ylabel('이동 인구수')
plt.show() 

*한글 파일이 계속 깨져서 한글 파일은 못했다...

그래프 꾸미기

  • figure(size=(가로인치,세로인치)) : 그림틀 사이즈 변경
  • xticks(rotation='vertical') : 눈금 라벨 회전(반시계 90 == rotation=90)
  • xticks 매개 변수에 size 사용시 폰트 크기 설정 간으
  • plot()에 marker='o' 사용시 점 모양의 마커 표시 생성
  • plt.style.use('ggplot') : 스타일 서식 지정
    스타일 종류: classic, bmh, dark_background, seaborn 등

그래프 주석달기

  • annotate() 함수 사용
#주석 달기 - 화살표
plt.annotate(' ' #텍스트 추가 공간
             ,xy=(20,620000) #화살표의 머리부분
              ,xytext=(2,290000) #화살표 꼬리(시작)
              ,xycords='data' #좌표체계
              ,arrowprops=dict(arrowstyle='->',color='olive',lw=5))

#주석 달기 - 텍스트
plt.annotate('인구 이동 증가 (1970-1995)',
             xy=(10,550000),
             rotation=25, #양수는 반시계 방향
             va='baseline', #세로 방향 정렬 (center,top,bottom,baseline)
             ha='center', #좌우 가로 방향  (center,left,right)
             fontsize=15)

화면 분할

  • axe 객체 활용
  • fig 객체에 add_subplot() 메소드를 적용해 그림틀을 여러개로 분할한다. 이때 분할된 각 부분을 axe 객체라고 부른다.
#그래프 객체 fig를 생성후 두개의 서브 플롯 생성
fig=plt.figure(figsize=(10,10))
ax1=fig.add_subplot(2,1,1) 
ax2=fig.addd_subplot(2,1,2)

면적 그래프

profile
단순 기록용 Velog 입니다.

0개의 댓글