代码之家  ›  专栏  ›  技术社区  ›  IcyPopTarts

使用2个数据集Charts.js生成图表

  •  -1
  • IcyPopTarts  · 技术社区  · 8 年前

    我可以用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;
                        }
                    }]
                }
            }]  
        );
    
    1 回复  |  直到 8 年前
        1
  •  1
  •   ever.wakeful    8 年前

    代码的最后一行 }] ]}

    重新配置的结构:

    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;
        }
      }]
    });