从 y 轴图表中获取 min/lowest 标签的值

Get value of min/lowest label from y-axis chart

我试图在我的图表中获得最低的 y 轴 label/value。 y 轴标签是 dynamically/automatically 添加的,因为我有意不将其设置为从零开始。我如何从图表中获取最低标签的值(下例中的 30)?

我试过了:myLineChart.options.scales.yAxes[0].ticks.min; 但只有 returns 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>

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

下面的代码片段展示了我使用它来输出最低值。

或者,如果您将 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>