如何通过HTML在本地运行Chart.JS示例?

xiozqbni  于 2022-12-04  发布在  Chart.js
关注(0)|答案(1)|浏览(201)

到目前为止,我尝试了很多方法,但都没有成功,主要是试图让Chart.JS示例之一在我的Mac上本地运行,但HTML图表不会显示。每次尝试都会导致一个空白的HTML页面。
我主要尝试使用基本的Chart.JS html图表作为框架,然后将主机代码转换为我想用于图表的代码。我也尝试了一些修改,但它们都不起作用。
`

<!DOCTYPE html>
<!--[if lt IE 7]>      <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]>         <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]>         <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]>      <html class="no-js"> <!--<![endif]-->
<html>
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <title>Testing here</title>
        <meta name="description" content="">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel="stylesheet" href="">
    </head>
    <body>
      <div>
        <canvas id="myChart"></canvas>
      </div>
      
      <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
      
      <script>
        const ctx = document.getElementById('myChart');
      
        // <block:actions:2>
        const actions = [
        {
            name: 'Randomize',
            handler(chart) {
            chart.data.datasets.forEach(dataset => {
                dataset.data = Utils.numbers({count: chart.data.labels.length, min: -100, max: 100});
            });
            chart.update();
            }
        },
        {
            name: 'Add Dataset',
            handler(chart) {
            const data = chart.data;
            const dsColor = Utils.namedColor(chart.data.datasets.length);
            const newDataset = {
                label: 'Dataset ' + (data.datasets.length + 1),
                backgroundColor: Utils.transparentize(dsColor, 0.5),
                borderColor: dsColor,
                borderWidth: 1,
                data: Utils.numbers({count: data.labels.length, min: -100, max: 100}),
            };
            chart.data.datasets.push(newDataset);
            chart.update();
            }
        },
        {
            name: 'Add Data',
            handler(chart) {
            const data = chart.data;
            if (data.datasets.length > 0) {
                data.labels = Utils.months({count: data.labels.length + 1});

                for (let index = 0; index < data.datasets.length; ++index) {
                data.datasets[index].data.push(Utils.rand(-100, 100));
                }

                chart.update();
            }
            }
        },
        {
            name: 'Remove Dataset',
            handler(chart) {
            chart.data.datasets.pop();
            chart.update();
            }
        },
        {
            name: 'Remove Data',
            handler(chart) {
            chart.data.labels.splice(-1, 1); // remove the label first

            chart.data.datasets.forEach(dataset => {
                dataset.data.pop();
            });

            chart.update();
            }
        }
        ];
        // </block:actions>

        // <block:setup:1>
        const DATA_COUNT = 7;
        const NUMBER_CFG = {count: DATA_COUNT, min: -100, max: 100};

        const labels = Utils.months({count: 7});
        const data = {
        labels: labels,
        datasets: [
            {
            label: 'Dataset 1',
            data: Utils.numbers(NUMBER_CFG),
            borderColor: Utils.CHART_COLORS.red,
            backgroundColor: Utils.transparentize(Utils.CHART_COLORS.red, 0.5),
            order: 1
            },
            {
            label: 'Dataset 2',
            data: Utils.numbers(NUMBER_CFG),
            borderColor: Utils.CHART_COLORS.blue,
            backgroundColor: Utils.transparentize(Utils.CHART_COLORS.blue, 0.5),
            type: 'line',
            order: 0
            }
        ]
        };
        // </block:setup>

        // <block:config:0>
        const config = {
        type: 'bar',
        data: data,
        options: {
            responsive: true,
            plugins: {
            legend: {
                position: 'top',
            },
            title: {
                display: true,
                text: 'Chart.js Combined Line/Bar Chart'
            }
            }
        },
        };
        // </block:config>

module.exports = {
  actions: actions,
  config: config,
};

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

`
这段代码我做错了什么吗?

mwg9r5ms

mwg9r5ms1#

有两个问题,
1.代码使用的是Utils. ...,但未加载javascript文件。

**解决方案:**替换Utils....代码或为其加载Javascript文件

1.您不会将图表添加到页面。

解决方案:

将此代码添加到脚本的末尾。

new Chart(
     ctx,
     config
 );

这里我清理了您的演示,以便它可以工作:

1.我删除大多数“不需要”的代码
1.数据在同一高度上都是静态的,但是您可以通过设置属性data轻松地更改这一点
第一次

相关问题