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()
*한글 파일이 계속 깨져서 한글 파일은 못했다...
#주석 달기 - 화살표
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)
#그래프 객체 fig를 생성후 두개의 서브 플롯 생성
fig=plt.figure(figsize=(10,10))
ax1=fig.add_subplot(2,1,1)
ax2=fig.addd_subplot(2,1,2)