【问题标题】:Chart.js 3.x not able to display data on chartChart.js 3.x 无法在图表上显示数据
【发布时间】:2020-09-09 15:39:04
【问题描述】:

我有下面的图表使用 chart.js 3.x。
https://jsfiddle.net/7oxmesnj/1/

我有以下图表配置:

var options = {
  type: 'scatter',
  data: {
    labels: ["Red", "Blue", "Yellow", "Green", "Purple", "Orange"],
    datasets: [
        {
          label: '# of Votes',
          data: [12, 19, 3, 5, 2, 3],
        borderWidth: 0,
        showLine: true,
        },  
            {
                label: '# of Points',
                data: [7, 11, 5, 8, 3, 7],
                borderWidth: 0,
        showLine: true,
            }
        ]
  },
  options: {
    scales: {
        y:{
        type: 'linear',
        min: 0,
        max: 500,
        ticks: {
          stepSize: 100,
                    reverse: false
        }
      },
      x:{
        type: 'linear',
        min: 0,
        max: 500,
        ticks: {
          stepSize: 100,
                    reverse: false
        }
      }

    }
  }
}

我无法在散点图上绘制数据。
我关注了迁移公会,但图表上仍然没有数据。
https://www.chartjs.org/docs/master/getting-started/v3-migration

【问题讨论】:

    标签: javascript chart.js chart.js3


    【解决方案1】:

    您应该将数据集更改为具有数字对 (x, y)。 See documentation.

    var options = {
      type: 'scatter',
      data: {
        labels: ["Red", "Blue", "Yellow", "Green", "Purple", "Orange"],
        datasets: [{
          label: '# of Votes',
          data: [{x:12,y:7}, {x:19,y:11}, {x:3,y:5}, {x:5,y:8}, {x:2,y:3}, {x:3,y:7}],
          borderWidth: 1,
          showLine: true,
          pointBackgroundColor: 'red',
          borderColor: 'blue',
          backgroundColor: 'blue',
        }]
      },
    }
    
    var ctx = document.getElementById('chartJSContainer').getContext('2d');
    new Chart(ctx, options);
    canvas {
      background-color: #eee;
    }
    <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.0.0-beta/chart.min.js"></script>
    
    <canvas id="chartJSContainer" width="600" height="400"></canvas>

    【讨论】:

      【解决方案2】:

      代码中的主要问题是 x 轴的定义。 x 轴代表labels,它们是字符串。因此,您不能定义数字 minmaxticks.stepSize 选项。

      为了获得给定数据的散点图,您可以将其type 更改为'line' 并在每个数据集上定义showLine: false

      请在下面查看您修改后的代码。我改变了你

      var options = {
        type: 'line',
        data: {
          labels: ["Red", "Blue", "Yellow", "Green", "Purple", "Orange"],
          datasets: [{
              label: '# of Votes',
              data: [12, 19, 3, 5, 2, 3],
              fill: false,
              showLine: false
            },
            {
              label: '# of Points',
              data: [7, 11, 5, 8, 3, 7],
              fill: false,
              showLine: false
            }
          ]
        },
        options: {
          scales: {
            y: {
              min: 0,
              max: 50,
              ticks: {
                stepSize: 10
              }
            }
          }
        }
      };
      
      new Chart('chartJSContainer', options);
      <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.0.0-beta/chart.min.js"></script>
      <canvas id="chartJSContainer"></canvas>

      【讨论】:

        猜你喜欢
        • 2017-08-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-30
        • 2014-09-11
        • 1970-01-01
        • 2015-10-16
        • 1970-01-01
        相关资源
        最近更新 更多