Chart.js更改点的垂直位置

vp_arth

我将Chart.types.Line比例尺扩展并覆盖到某个恒定值。

我现在需要的-用

  • y > scale.maxscale.max位置
  • y < scale.minscale.min位置

用户与他们互动的能力。
标题应该是正确的(未修改的)值,所以我不能只修改数据集。

我该如何实现?

简化代码:

function ChartFactory(title) {
  Chart.types.Line.extend({
    name: title,
    buildScale: function() {
        this.options.scaleOverride = true;
        this.options.scaleSteps = 10;
        this.options.scaleStepWidth = this.options.S;
        this.options.scaleStartValue = this.options.target - 5 * this.options.S;
        Chart.types.Line.prototype.buildScale.apply(this, arguments);      
    },
    draw: function () {
        var chart = this;
        Chart.types.Line.prototype.draw.apply(chart, arguments);
        // some additional graphic here 
    }
  });
}
土豆皮

只需在您的末尾添加以下内容 buildScale

...
var scale = this.scale;
var originalCalculateY = scale.calculateY;
scale.calculateY = function(y) {
    if (y > scale.max)
        return originalCalculateY.apply(this, [scale.max]);
    else if (y < scale.min)
        return originalCalculateY.apply(this, [scale.min]);
    else
        return originalCalculateY.apply(this, [y]);
}
...

这会有点令人困惑,因为您仍然会有轴标签。


小提琴-http: //jsfiddle.net/wjb3k4gx/

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章