https://cdnjs.com/libraries/Chart.js
https://getbootstrap.kr/docs/5.0/getting-started/introduction/
# chart.js를 불러올 수 있게 코드를 추가한다.
## html 파일 head태그 부분에 코드를 추가한다.
<script src=https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.3.2/chart.min.js></script>
# 개발을 편하게 하기 위해서 부트스트랩 css코드를 추가한다.
## html 파일 head태그 부분에 코드를 추가한다.
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-+0n0xVW2eSR5OomGNYDnhzAbDsOXxcvSN1TPprVMTNDbiYZCxYbOOl7+AMvyTG2x" crossorigin="anonymous">
### 예시
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Document</title>
**<script src=https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.3.2/chart.min.js></script>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/css/bootstrap.min.css" rel="stylesheet">**
</head>
<body>
</body>
</html>
# body 태그에 div class로 화면 안에 들어갈 차트의 container 생성한다.
## canvas id로 내용을 담을 때 선택할 수 있도록 한다.
**<div class="container">
<div class="row">
<div class="col-md-6">
<canvas id="myChartOne"></canvas>
</div>
</div>
</div>**
## 예시
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Document</title>
**<script src=https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.3.2/chart.min.js></script>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/css/bootstrap.min.css" rel="stylesheet">**
</head>
<body>
**<div class="container">
<div class="row">
<div class="col-md-6">
<canvas id="myChartOne"></canvas>
</div>
</div>
</div>**
<h1>hello world!!</h1>
</body>
</html>
#화면을 구성하는 html 파일에 코드를 추가한다.
## script 태그에 chart.js 코드를 추가한다.
<script>
let myChartOne = document.getElementById('myChartOne').getContext('2d');
let barChart = new Chart(myChartOne, {
type : 'bar', //pie, line, doughnut, polarArea
data : {
labels : ['호주 오픈','롤랑 가로스', '윔블던', 'U.S 오픈'],
datasets : [{
label : '페더러 그랜드 슬램 우승횟수',
data : [
5,
1,
8,
5
]
}]
}
});
</script>
# 에러메세지
Uncaught SyntaxError: Identifier 'tennisChartOne' has already been declared
## 이유 변수를 똑같이 설정했다.
**let tennisChartOne = document.getElementById('tennisChartOne').getContext('2d');
let tennisChartOne = new Chart(tennisChartOne, {**
type: 'pie',
data : {
labels : ['승률', '패배율'],
datasets : [{
labels : '승패율'
data : [
'81,87%',
'18.13%'
]
}]
}
})
# 에러 다시 한번발생
Uncaught SyntaxError: Unexpected identifier
## 문제는 콤마 하나를 안 찍었다.
### 기존
let pieChartOne = new Chart(tennisChartOne, {
type: 'pie',
data : {
labels : ['승률', '패배율'],
datasets : [{
labels : '승패율'
data : [
'81,87%',
'18.13%'
]
}]
}
});
### 변경후
let pieChartOne = new Chart(tennisChartOne, {
type: 'pie',
data : {
labels : ['승률', '패배율'],
datasets : [{
labels : '승패율'**,**
data : [
'81,87%',
'18.13%'
]
}]
}
});
# 차트 데이터에는 숫자 타입이 들어가야 한다.
##변경전
let pieChartOne = new Chart(tennisChartOne, {
type: 'pie',
data : {
labels : ['승률', '패배율'],
datasets : [{
labels : '승패율'**,**
data : [
**'81,87%',
'18.13%'**
]
}]
}
});
## 변경후
let pieChartOne = new Chart(tennisChartOne, {
type: 'pie',
data : {
labels : ['승률', '패배율'],
datasets : [{
labels : '승패율'**,**
data : [
**81,87,
18.13**
]
}]
}
});
이유는 data 안에 문자 타입이 아닌 숫자타입이 들어가야 실행되었다.
이제 chart.js로 어떻게 화면에 띄워야 할 지, 최소한 부분을 배웠다. 앞으로는 이 테니스 데이터의 csv 파일을 어떻게 DB에 저장하고, 그 DB에 저장된 데이터를 가져와서 웹 화면에 보여줄 지 추가적으로 공부하여야 한다. 그리고 쥬피터 노트북으로 분석했던 데이터를 어떻게 실제 웹사이트에서 연동되도록 하여야 할 지 방법을 찾아보면서 진행해야 한다.