javascript - 如何显示图中每个点的 Y 轴刻度

标签 javascript chart.js

我正在使用 chartjs 来显示一些数据,但我在 Y 轴可视化方面遇到了麻烦。我希望图表中的每个点都在 Y 轴上有一个值。现在 Y 轴显示值以 10 为步长。

这是我实际的 yAxis 配置:

yAxes: [{
            position: "left",
            ticks: {
                source:"data",
            } 
        }]

这是实际的图表。我只想在 Y 轴上显示所显示点的实际值。在 X 轴上,此配置有效,时间与点对齐。 actual

预期:

expected

最佳答案

您必须使用 Axis Callbacks (docs) ,尤其是 afterBuildTicks

在我的linked example (jsbin)我将 0 压入我的数据,因为您不能使用 beginAtZero: true 并删除数组中的所有重复项。

data.push(0); //if 'beginAtZero' is wanted
let uniqueData = data.filter((v, i, a) => a.indexOf(v) === i);

在选项中,您可以在 afterBuildTicks 中定义最小值和最大值以及刻度。

options: {
  scales: {
    yAxes: [{
      ticks: {
        autoSkip: false,
        min: Math.min(...uniqueData),
        max: Math.max(...uniqueData)
      },
      afterBuildTicks: function(scale) {
        scale.ticks = uniqueData;
      }
    }]
  }
}

你会遇到重叠刻度的问题,但我不知道防止这种情况的一般方法,我也不知道你的具体用例。

关于javascript - 如何显示图中每个点的 Y 轴刻度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57825234/

相关文章:

javascript - 下拉 Selectize.js 上的链接

javascript - 从 .js 文件或 JavaScript 函数中提取所有变量

javascript - chart.js,每次更新后,避免滚动到顶部位置

javascript - 重现 Chartjs v2 中的错误 极坐标图未绘制所有提供的数据

javascript - 在 Chart.js 中删除饼图上的切片 onClick 事件

php - 将此数据库结果传递给 javascript 函数的正确方法是什么?

javascript - 如何将 <select> 元素合并到 Bootstrap 下拉列表中?

javascript - .sort 不适用于 Firefox

javascript - 未捕获的类型错误 : Cannot create property '_meta' on string

javascript - Chartjs 工具提示中的不同标签