chart.js雷达scaleShowLine为每个scaleLine

时间:2017-03-24 22:52:33

标签: javascript chart.js

我在雷达图表上工作,我只想显示最后一个刻度线。

我发现这篇帖子可以帮助我:Chart.js (Radar Chart) different scaleLineColor for each scaleLine但不幸的是,答案已经不再适用了(jsfiddle链接没有显示任何内容)。

我阅读了关于gridLines选项的chart.js文档的部分内容,然后对此代码进行了一些测试/更改:[常规雷达图表] [2]没有任何结果,是否有人知道如何调整它?

谢谢!

[2]:https://codepen.io/grayghostvisuals/pen/xmBpL enter code here

1 个答案:

答案 0 :(得分:0)

以下是使用最新版本的chart.js(v2.5.0)的解决方案。它使用the scale afterTickToLabelConversion callback property来覆盖为比例刻度设置的值(例如比例线)。

由于您只想显示最后一行,您必须通过保留第一个刻度值(从不显示)和仅最后一个刻度值(最后一行)来覆盖它们。如果您只想显示其他行,那么您将保留第一个刻度线,并且只保留您想要显示的另一行。

这是我的实施。

afterTickToLabelConversion: function(scaleInstance) {
  // overwrite the ticks and keep the first (never shown) and last
  var oldTicks = scaleInstance.ticks;
  scaleInstance.ticks = [oldTicks[0], oldTicks[oldTicks.length - 1]];

  // overwrite the numerical representation of the ticks and 
  // keep the first (never shown) and last
  var oldTicksAsNumbers = scaleInstance.ticksAsNumbers;
  scaleInstance.ticksAsNumbers = [oldTicksAsNumbers[0], oldTicksAsNumbers[oldTicksAsNumbers.length - 1]];
}

这是一张显示原始雷达图的codepen example和使用上述方法的雷达图,以便您可以看到差异。