본문 바로가기
비트 장기/파이썬

파이썬

by woohyun22 2018. 8. 31.
import matplotlib.pyplot as plt
import urllib.parse
import urllib.request
import pytagcloud
ym = []
forlist = []
natlist = []
for y in range(2012, 2013):
for i in range(1, 13): #월을 표시하기위해 1~12까지 반복하게 한다.
url = 'http://openapi.tour.go.kr/openapi/service/TourismResourceStatsService/getPchrgTrrsrtVisitorList'
sk = "7gJ2zt4OmZnQ82ubK4gjDVnHJA%2F5sxYPlB3zEub5vjE8BQnSOUalR9EQ%2B9A9DXot6M5PnDH4nxA586dC%2FmPsug%3D%3D"
yyyymm = "%d%02d" %(y, i) #2d 두자리로 만들어주는데 비어있는자리는 0으로 채워주세요
a = "?_type=json&ServiceKey=" + sk #json파일을 받기위한
a += "&YM="+yyyymm
a += "&SIDO"+urllib.parse.quote("부산")

b = url+a
r1 = urllib.request.Request(b) #요청을하는것
r2 = urllib.request.urlopen(r1)
if r2.getcode()==200:
print("성공")
temp = r2.read().decode("utf-8")
print(temp)
t3 = []

import json
js = json.loads(temp) #temp를 파싱하게된다.
ym.append(js['response']['body']['items']['item']['ym'])
forlist.append(int(js['response']['body']['items']['item']['csForCnt']))
natlist.append(int(js['response']['body']['items']['item']['csNatCnt']))
else:
print("실패")

import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
fl = fm.FontProperties(fname='C:\Windows\Fonts\malgun.ttf').get_name()
plt.rc('font', family=fl)

import pandas as pd
a = [forlist, natlist]
b = ['내국인방문객','외국인방문객']
pf = pd.DataFrame(a, index=b, columns=ym).T

fw = open("sample100.txt",'w',encoding="UTF-8")# write 실행두번시 기존파일삭제후 새로만들어짐//(파일명,w)
fw.write('\"외국인\",\"내국인\"\n')
s =0;
while s<12:
fw.write('\"%s\",%d,%d\n' % (ym[s], forlist[s], natlist[s]))
s +=1
fw.close()

fr = open("sample100.txt",'r',encoding="UTF-8")
w = fr.read()
print(w)
fr.close()
#다중막대 내국인 외국인 반복 두개씩 비교 1~12월



import matplotlib.pyplot as plt
import pandas as pd
import matplotlib.font_manager as fm
fl = fm.FontProperties(fname='C:\Windows\Fonts\malgun.ttf').get_name()# 한글 pont 경로를 넣어줘야된다.
#C:\Windows\Fonts\ 파일속성명으로 적어줘야된다.
plt.rc('font',family=fl)
a=[1,2,3,4,5]#나이 필드
b=[1,4,3,2,9]#이름 필드
c=[3,6,9,7,8]#고향 필드
d=[a,b,c]
e=["내국인","외국인","독수리"]
f=["1월","2월","3월","4월","5월"]
df = pd.DataFrame(d,
index=e,
columns=f
).T#dataframe객체
print(type(df))#class
print(df)
df.plot(kind="bar" ,rot=0)#rot각도
plt.show()


728x90

'비트 장기 > 파이썬' 카테고리의 다른 글

8/30  (0) 2018.08.30
8/29  (0) 2018.08.29
8/28 크롤링 api긁어오기  (0) 2018.08.28
파이썬 문제복습 4번~13번  (0) 2018.08.28
8/27 api 검색어 긁어오기  (0) 2018.08.27

댓글