如何使用 Chart.js 按线条属性更改绘制顺序

bar*_*ich 3 javascript chart.js

我想要做的是根据label属性更改此图表上一条线的 Z 顺序。例如,在这里我想在顶部绘制“Label2”图。我试图做的是改变 data_all 数组,将我想要的元素放在列表中的第一个位置,尽管我无法完成这项工作。如何更改剧情顺序?

所以我正在创建一个对象数组,我可以将它们直接放入图表js的“数据部分”中,如下所示

        data_all=[]
    
        var s1 = {
          label: 'Label1',
          borderColor: '#00ffff',
          fill: false,
          data: [ 
          
          {x: '2021-06-25 11:00:00', y:50.5401942},
          
          {x: '2021-06-25 12:00:00', y:49.9631549},
              
          {x: '2021-06-25 13:00:00', y:50.0555899}]

          data_all.push(s1)

        var s2 = {
          label: 'Label2',
          borderColor: '#00ffff',
          fill: false,
          data: [ 
          
          {x: '2021-06-25 11:00:00', y:50.5401942},
          
          {x: '2021-06-25 12:00:00', y:49.9631549},
              
          {x: '2021-06-25 13:00:00', y:50.0555899}]

          data_all.push(s2)
Run Code Online (Sandbox Code Playgroud)

data_all然后我通过传递到图表变量来创建图表。

var ctx = document.getElementById('plotAll').getContext('2d');
            

var plotall = new Chart(ctx, {
                  type: 'line',
                  data: { datasets: data_all },
                  options: {
                    responsive: true,
                    zoom: {
                            enabled: true,
                            mode: 'x'
                        },
                    pan: {
                      enabled: true,
                      mode: 'xy'
                        },
                      
    
                    scales: {
                      xAxes: [{
                        type: 'time'
                      }]
                    },
                    
                  }
                });
Run Code Online (Sandbox Code Playgroud)

Lee*_*lee 5

您可以利用order数据集中的属性,该属性越低,绘制该数据集的速度就越快,请参见示例,通常红线会与蓝线重叠,现在它相反:

var options = {
  type: 'line',
  data: {
    labels: ["Red", "Blue", "Yellow", "Green", "Purple", "Orange"],
    datasets: [{
        label: '# of Votes',
        data: [12, 19, 3, 5, 2, 3],
        borderColor: 'red',
        order: 1
      },
      {
        label: '# of Points',
        data: [7, 11, 5, 8, 3, 7],
        borderColor: 'blue',
        order: 0
      }
    ]
  },
  options: {}
}

var ctx = document.getElementById('chartJSContainer').getContext('2d');
new Chart(ctx, options);
Run Code Online (Sandbox Code Playgroud)
<body>
  <canvas id="chartJSContainer" width="600" height="400"></canvas>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.4.0/chart.js"></script>
</body>
Run Code Online (Sandbox Code Playgroud)