def createElementDiv(name):
element = document.createElement('div')
element.id = name
document.body.append(element)
return Element(name)
import pandas as pd
from pyodide.http import open_url
import numpy as np
# 판다스에서 csv 를 데이터 프레임으로 읽어옴
매출데이터 = pd.read_csv(open_url(
"http://dreamplan7.cafe24.com/pyscript/csv/avocado.csv"
))
# 2개 필드만 추려서 데이터 프레임을 다시 만듬
매출데이터 = 매출데이터[[
'Date',
'Total Volume'
]]
# 영문 제목을 한글로 변경
매출데이터.columns = [
'날짜',
'매출량'
]
# 주간 매출량 그룹
주간매출데이터 = 매출데이터.fillna(0) \
.groupby('날짜', as_index=False)[['매출량']] \
.sum() \
.sort_values(
by='날짜',
ascending=True
)
# 10000으로 나눈 매출량 필드 추가
주간매출데이터.insert(2, '매출량(만)',
주간매출데이터['매출량']/10000,
True)
createElementDiv('output2').write(주간매출데이터)
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
import matplotlib as mat
# 기준 폰트 변경 : legend 의 한글을 적용하려면 필수
fm.fontManager.addfont('./NANUMMYEONGJO.TTF') # 폰트명 : NanumMyeongjo
mat.rc('font', family='NanumMyeongjo')
###################
# 폰트 목록 출력 ( 폰트 추가 후 정확한 이름을 확인하려면 필요
#font_list = [font.name for font in fm.fontManager.ttflist]
#for f in font_list:
# print(f)
###################
# 개별 폰트 적용
NanumMyengjo = fm.FontProperties(
fname='./NANUMMYEONGJO.TTF'
)
NanumMyengjoBold = fm.FontProperties(
fname='./NANUMMYEONGJOBOLD.TTF'
)
fig = plt.figure(
figsize=(15, 7)
)
plt.title('주간 아보카도 매출량',
fontproperties=NanumMyengjoBold,
fontsize=32
);
plt.xticks(rotation=90, fontsize=8)
# 꺾은선 그래프
plt.plot(
주간매출데이터['날짜'].to_list(),
주간매출데이터['매출량(만)'].to_list(),
marker='o',
color='green',
label='매출량'
)
# 축 라벨 표시
plt.xlabel('날짜', fontsize=16)
plt.ylabel('매출량(단위:만)', fontsize=12)
# 범례 표시
plt.legend()
ax = plt.gca()
# X축만 그리드
ax.xaxis.grid(True)
# 마진 조정
ax.margins(x=0.01, y=0.02)
# 주위 이상한 여백 없애기
fig.tight_layout()
fig