【问题标题】:Get value of min/lowest label from y-axis chart从 y 轴图表中获取最小/最低标签的值
【发布时间】:2021-09-22 19:52:18
【问题描述】:

我正在尝试获取图表中最低的 y 轴标签/值。 y 轴标签是动态/自动添加的,因为我故意不将其设置为从零开始。如何从图表中获取最低标签的值(下例中为30)?

我试过了:myLineChart.options.scales.yAxes[0].ticks.min;,但它只返回undefined

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

var data = {
  labels: ["data1", "data2", "data3", "data4", "data5", "data6"],
  datasets: [{
    label: "Sample data",
    data: [128, 56, 47, 64, 125, 36],
    borderColor: "rgba(0, 128, 0, 1)"
  }]
};

var myLineChart = new Chart(ctx, {
  type: "line",
  data: data
});

console.log(myLineChart.options.scales.yAxes[0].ticks.min); // returns `undefined`
<script src="https://cdn.jsdelivr.net/npm/chart.js@2.8.0"></script>
<canvas id="myChart" width="200" height="100"></canvas>

【问题讨论】:

    标签: javascript object chart.js axis-labels


    【解决方案1】:

    我对 myLineChart 对象进行了一些挖掘,发现到达 y 轴刻度的路径是: myLineChart.ticks.boxes[0].chart.scales['y-axis-0'].ticks.

    下面的 sn-p 显示我使用它来输出最小值。

    或者,如果您将 chartJs 升级到至少 3.1 版(这是我在项目中使用的),图表对象结构更容易导航。在 ChartJs 3.1 中,答案看起来像:myLineChart.scales.y.min

    var ctx = document.getElementById('myChart').getContext('2d');
    
    var data = {
      labels: ["data1", "data2", "data3", "data4", "data5", "data6"],
      datasets: [{
        label: "Sample data",
        data: [128, 56, 47, 64, 125, 36],
        borderColor: "rgba(0, 128, 0, 1)"
      }]
    };
    
    var myLineChart = new Chart(ctx, {
      type: "line",
      data: data
    });
    
    console.log(myLineChart.boxes[0].chart.scales['y-axis-0'].ticks[myLineChart.boxes[0].chart.scales['y-axis-0'].ticks.length - 1])
    <script src="https://cdn.jsdelivr.net/npm/chart.js@2.8.0"></script>
    <canvas id="myChart" width="200" height="100"></canvas>

    【讨论】:

      猜你喜欢
      • 2021-10-11
      • 2013-12-04
      • 1970-01-01
      • 1970-01-01
      • 2016-06-20
      • 1970-01-01
      • 2016-01-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多