<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="https://cdn.jsdelivr.net/npm/danfojs@0.1.2/dist/index.min.js"></script>
</head>
<body>
<h1>0303~0313사이로 누르세요</h1>
<input type="text" id="input">
<button type="submit" id="but">입력버튼</button>
<div id="table"></div>
<div id="plot_div"></div>
<script>
let input = document.getElementById('input')
let button = document.getElementById('but');
button.addEventListener('click',function(){
dfd.read_csv(`https://khw970421.github.io/covid/data/date/${input.value}.csv`)
.then(
function(data) {
df = new dfd.DataFrame({
Price: data.body__items__item__incDec.data.slice(0,data.body__items__item__incDec.data.length-1), //표의 맨 아래 합계를 제거한 내용들
Location : data.body__items__item__gubun.data.slice(0,data.body__items__item__gubun.data.length-1),
Type: data.body__items__item__gubun.data.slice(0,data.body__items__item__gubun.data.length-1)
})
df.plot("plot_div").pie({ values: "Price", labels: "Type" })
}
)
});
</script>
</body>
</html>
button의 클릭이 발생하면 함수가 실행되는데 해당
input.value
의 값을 가진 http로 가서 csv를 읽어온 후 data함수에서 필요한 증가수인incDec
와 날짜인gubun
을 각각의 Price, Location, Type로 가져온다.
이때 문제가 생겼는데 그래프에서 반이 합계로 차지하고 있었다.
이를 해결하기 위해서 해당 마지막 값을 제거한 형태의 배열이 필요하여 배열에 사용하는slice()
를 이용해서 마지막값을 제외한 배열을 얻어 결과를 출력했다.
해당 pie사용법은 공식홈페이지를 보면 알 수 있다.
입력에 따라 정상적으로 pie가 출력되는 것을 볼 수 있다.