我将Chart.types.Line
比例尺扩展并覆盖到某个恒定值。
我现在需要的-用
y > scale.max
在scale.max
位置y < scale.min
在scale.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] 删除。
我来说两句