Document

初めに

棒グラフも使用頻度は高いと思います。それゆえ、飽きがきます。インタラクティブ性とアニメーションを付けてみます。javascriptで作ります。

コード

chartjsを使います。以下のコードをコピーして、1つのhtmlファイルを作ります。htmlファイルをブラウザで開けばグラフが見えます。

<!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>Document</title>
    <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
    <style>
        #canvasdiv {
            height: auto;
            margin: 0px 50px;
        }
    </style>
</head>

<body>
    <div id="canvasdiv">
        <canvas id="myChart" width="200" height="110" style="align-content: center"></canvas>
    </div>
    <script>

        Chart.defaults.font.size = 18;

        var ctx = document.getElementById('myChart');

        new Chart(ctx, {
            type: 'line',
            data: {
                labels: [2000, 2010, 2020, 2030],
                datasets: [{
                    data: [133, 500, 783, 1380],
                    label: "Food A",
                    borderColor: 'rgba(255, 99, 132, 1)',
                    backgroundColor: 'rgba(255, 99, 132, 0.2)',
                }, {
                    data: [947, 1402, 1500, 1600],
                    label: "Food B",
                    borderColor: 'rgba(54, 162, 235, 1)',
                    backgroundColor: 'rgba(54, 162, 235, 0.2)',
                }, {
                    data: [276, 408, 547, 675, 734],
                    label: "Food C",
                    borderColor: 'rgba(255, 206, 86, 1)',
                    backgroundColor: 'rgba(255, 206, 86, 0.2)',
                }, {
                    data: [74, 167, 508, 784],
                    label: "Food D",
                    borderColor: 'rgba(75, 192, 192, 1)',
                    backgroundColor: 'rgba(75, 192, 192, 0.2)',
                }
                ]
            },
            options: {
                plugins: {
                    title: {
                        display: true,
                        text: 'フードの売上 各社比較'
                    },
                    legend: {
                        labels: {
                            font: {
                                size: 14
                            }
                        }
                    },
                },
                scales: {
                    y: {
                        title: {
                            display: true,
                            text: '売上',
                            color: 'grey',
                        },
                    },
                    x: {
                        title: {
                            display: true,
                            text: '西暦',
                            color: 'grey',
                        },
                    }
                },
                elements: {
                    line: {
                        borderWidth: 2
                    }
                },
                animations: {
                    y: {
                        duration: 1000,
                        easing: 'linear',
                        loop: false
                    }
                },
            },
        });

    </script>
</body>
</html>
category