graphJS를 이용해서 그래프들을 그리는 연습을 했다.
option들이 상당히 많아서 나중에 필요할 때 차차 살펴보는 것으로 하고 기본적인 모양을 구현하는 것에 집중했다.
<script src="https://cdn.jsdelivr.net/npm/chart.js@2.8.0"></script>
이것을 써주면 된다.
<body>
<canvas id="barChart"></canvas>
</body>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>barChart</title>
</head>
<body>
<canvas id="barChart"></canvas>
</body>
<script src="https://cdn.jsdelivr.net/npm/chart.js@2.8.0"></script>
<script src="./utils.js"></script>
<script>
//Bar charts(Vertical)
var MONTHS = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
var color = Chart.helpers.color;
var barChartData = {
labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],
datasets: [{
label: 'Dataset 1',
backgroundColor: color(window.chartColors.red).alpha(0.5).rgbString(),
borderColor: window.chartColors.red,
borderWidth: 1,
data: [
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor()
]
}, {
label: 'Dataset 2',
backgroundColor: color(window.chartColors.blue).alpha(0.5).rgbString(),
borderColor: window.chartColors.blue,
borderWidth: 1,
data: [
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor()
]
}]
};
// take a graph
window.onload = function () {
var ctx = document.getElementById('barChart').getContext('2d');
window.myBar = new Chart(ctx, {
type: 'bar',
data: barChartData,
options: {
responsive: true,
legend: {
position: 'top',
},
title: {
display: true,
text: 'Chart.js Bar Chart'
}
}
});
};
</script>
</html>

(위와 비슷한 Head 와 Body 부분은 생략했다.)
<script>
var MONTHS = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
var config = {
type: 'line',
data: {
labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],
datasets: [{
label: 'My First dataset',
backgroundColor: window.chartColors.red,
borderColor: window.chartColors.red,
data: [
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor()
],
fill: false,
}, {
label: 'My Second dataset',
fill: false,
backgroundColor: window.chartColors.blue,
borderColor: window.chartColors.blue,
data: [
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor()
],
}]
},
options: {
responsive: true,
title: {
display: true,
text: 'Chart.js Line Chart'
},
tooltips: {
mode: 'index',
intersect: false,
},
hover: {
mode: 'nearest',
intersect: true
},
elements: {
line: {
tension: 0.000001
}
},
scales: {
xAxes: [{
display: true,
scaleLabel: {
display: true,
labelString: 'Month'
}
}],
yAxes: [{
display: true,
scaleLabel: {
display: true,
labelString: 'Value'
}
}]
}
}
};
// take a graph
window.onload = function () {
var ctx = document.getElementById('lineChart').getContext('2d');
window.myLine = new Chart(ctx, config);
};
</script>

(option 부분에서 tension을 설정하지 않으면 곡선으로 그려진다)
<script>
var chartData = {
labels: ['a', 'b', 'c', 'd', 'e', 'f'],
datasets: [{
label: 'My First dataset',
fill: false,
backgroundColor: window.chartColors.red,
borderColor: window.chartColors.red,
data: [
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor()
],
}, {
label: 'My Second dataset',
fill: false,
backgroundColor: window.chartColors.blue,
borderColor: window.chartColors.blue,
data: [
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor()
],
}]
};
var chartOptions = {
tooltips: {
mode: 'label'
},
};
window.onload = function() {
var ctx = document.getElementById('radarChart').getContext('2d');
window.myRadar = new Chart(ctx, {
type: 'radar',
data: chartData,
options: chartOptions
});
}
</script>

<script>
var chartData = {
labels: ['a', 'b', 'c', 'd', 'e', 'f'],
datasets: [{
label: ['Mage', "Warrior", "Archor", "Healer", "Knight", "Gunner"],
data: [
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor()
],
backgroundColor: [
window.chartColors.red,
window.chartColors.purple,
window.chartColors.orange,
window.chartColors.yellow,
window.chartColors.green,
window.chartColors.blue,
]
}]
};
var chartOptions = {
responsive: true,
animation: {
animateScale: true,
animateRotate: true
}
};
window.onload = function() {
var ctx = document.getElementById('pieChart').getContext('2d');
window.myPie = new Chart(ctx, {
type: 'pie',
data: chartData,
options: chartOptions
});
}
</script>

<script>
var chartData = {
labels: ['a', 'b', 'c', 'd', 'e', 'f'],
datasets: [{
label: ['Mage', "Warrior", "Archor", "Healer", "Knight", "Gunner"],
data: [
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor()
],
backgroundColor: [
window.chartColors.red,
window.chartColors.purple,
window.chartColors.orange,
window.chartColors.yellow,
window.chartColors.green,
window.chartColors.blue,
]
}]
};
var chartOptions = {
responsive: true,
animation: {
animateScale: true,
animateRotate: true
}
};
window.onload = function() {
var ctx = document.getElementById('doughnutChart').getContext('2d');
window.myDoughnut = new Chart(ctx, {
type: 'doughnut',
data: chartData,
options: chartOptions
});
}
</script>
