chart.html_20211214

팡태(❁´◡`❁)·2021년 12월 14일
0

html/css/javascript

목록 보기
17/20
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>chart.html</title>
    <link href="css/mystyle1.css" rel="stylesheet" />

</head>
<body>
    <div class="container6">
        <h3>차트 실습</h3>
        <div style="width: 500px">
            <canvas id="myChart"></canvas>
        </div>
        <input type="button" value="차트데이터변경" id="btn" />
    </div>

    <script src="https://cdn.jsdelivr.net/npm/chart.js"></script><!-- 라이브러리 -->

    <script>


        const ctx = document.getElementById("myChart").getContext("2d");
        
        // 표시할 chart의 데이터 및 색상 설정
        const config = {
            type: 'bar',
            data: {
                labels: ['A', 'B', 'C', 'D', 'E', 'F'],
                datasets: [{
                    label: 'chart1',
                    data: [23, 46, 76, 34, 35, 89],
                    backgroundColor: [
                        'rgba(255, 99, 132, 0.2)',
                        'rgba(54, 162, 235, 0.2)',
                        'rgba(255, 206, 86, 0.2)',
                        'rgba(75, 192, 192, 0.2)',
                        'rgba(153, 102, 255, 0.2)',
                        'rgba(255, 159, 64, 0.2)'
                    ],
                    borderColor: [
                        'rgba(255, 99, 132, 1)',
                        'rgba(54, 162, 235, 1)',
                        'rgba(255, 206, 86, 1)',
                        'rgba(75, 192, 192, 1)',
                        'rgba(153, 102, 255, 1)',
                        'rgba(255, 159, 64, 1)'
                    ],
                    borderWidth: 1
                }]
            }
        }

        // 실제로 chart가 생성되는 시점
        const mychart = new Chart(ctx, config);

        // 차트 데이터   변경
        const btn = document.getElementById("btn");
        btn.addEventListener('click', function() {    
            let data = config.data.datasets[0].data;
            console.log(data); // data -> 배열
            for(let i=0; i<6; i++){
                data[i] = Math.floor( Math.random() * 100 + 1);
            }  // Math.floor -> 소숫점 버림, Math.random() -> 0~1 숫자를 랜덤으로 만듦
            // 변경된 데이터 적용해서 다시 그리기
            mychart.update();
        });
    </script>
    
</body>
</html>

0개의 댓글