【问题标题】:Generate Chart With 2 Datasets Charts.js使用 2 个数据集 Charts.js 生成图表
【发布时间】:2017-07-27 00:35:30
【问题描述】:

我可以让我的图表显示 1 个数据集没问题,但是将第二个添加到下面的语法中会给我一个错误

未捕获的语法错误:意外令牌}

这是我的语法 - 导致问题的原因是什么?

var ctx = document.getElementById('canvas').getContext('2d');
var chart = new Chart(ctx, {
        datasets: [{
                type: 'bar',
                labels: labelsarr,
                label: 'Red Team',
                backgroundColor: 'rgba(0, 129, 214, 0.8)',
                data: [values]
            }, {
                type: 'line', 
                label: 'Green Team',
                backgroundColor: 'rgba(0,129, 218, 0.8)',
                data: [values1]
            }, {
            options: {
                tooltips: {
                    callbacks: {
                        label: function (t, d) {
                            var xLabel = d.datasets[t.datasetIndex].label;
                            var yLabel = t.yLabel >= 1000 ? '$' + t.yLabel.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",") : '$' + t.yLabel;
                            return xLabel + ': ' + yLabel;
                        }
                    }
                },
                legend: {
                    display: false,
                    position: 'top',
                },
                scales: {
                    yAxes: [{
                            ticks: {
                                beginAtZero: true,
                                callback: function (value, index, values) {
                                    if (parseInt(value) >= 1000) {
                                        return '$' + value.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
                                    } else { return '$' + value; }
                                }
                            }
                        }]
                }
            },
            plugins: [{
                    beforeDraw: function (chart) {
                        var labels = chart.data.labels;
                    }
                }]
            }
        }]  
    );

【问题讨论】:

    标签: javascript php jquery chart.js chart.js2


    【解决方案1】:

    代码}] 的倒数第二行是倒数。应该是]}

    重新配置的结构:

    var ctx = document.getElementById('canvas').getContext('2d');
    var chart = new Chart(ctx, {
      type: 'bar',
      data: {
        datasets: [
          {
            label: 'Red Team',
            data: values,
            backgroundColor: 'rgba(0, 129, 214, 0.8)',
          },
          {
            label: 'Green Team',
            data: values1,
            type: 'line',
            backgroundColor: 'rgba(0,129, 218, 0.8)',
          }
        ],
        labels: labelsarr
      },
      options: {
        callbacks: {
          label: function (t, d) {
            var xLabel = d.datasets[t.datasetIndex].label;
            var yLabel = t.yLabel >= 1000 ? '$' + t.yLabel.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",") : '$' + t.yLabel;
            return xLabel + ': ' + yLabel;
          }
        },
        legend: {
          display: false,
          position: 'top'
        },
        scales: {
          yAxes: [{
            ticks: {
              beginAtZero: true,
              callback: function (value, index, values) {
                if (parseInt(value) >= 1000) {
                  return '$' + value.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
                } else { return '$' + value; }
              }
            }
          }]
        }
      },
      plugins: [{
        beforeDraw: function (chart) {
          var labels = chart.data.labels;
        }
      }]
    });
    

    【讨论】:

    • 这消除了错误 - 但页面上从未生成任何图表。如果我提醒显示值和值1 的长度,它们每个都显示 24。你看到另一个问题吗?
    • values 和 values1 是一个数组吗?
    • 是的 - 它们都被声明为这样 var values1 = [];变量值 = [];
    • 好的,所以我只是基于文档,但我认为您只需要调整您的结构 - 请参阅编辑以回答
    • 生成条形图但不生成折线图。
    猜你喜欢
    • 2017-05-14
    • 2021-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-09
    • 1970-01-01
    相关资源
    最近更新 更多