我正在使用Highchart.我有一个多系列图,其中每个系列都有自己的y轴.
当我们点击一个系列的图例项时,它会隐藏它和相关的y轴(使用showEmpty:false帮助隐藏轴的名称)
我想要实现的是隐藏给定系列的y轴而不隐藏系列本身.
我试图通过修改showAxis属性来隐藏它,如下所示:
serie.yAxis.showAxis = false;
Run Code Online (Sandbox Code Playgroud)
但它不起作用.谁知道我该怎么做?
编辑:我设法编辑文本,以便我可以通过将文本设置为null来删除轴标题,但它不足以隐藏整个轴及其值.
这是我编辑文本时所做的:
serie.yAxis.axisTitle.attr({
text: null
});
Run Code Online (Sandbox Code Playgroud)
Paw*_*Fus 52
Highcharts 4.1.9+
从4.1.9开始,有一个Axis.visible选项可用于显示/隐藏轴,演示:http://jsfiddle.net/3sembmfo/36/
较旧版本的Highcharts
这是Highcharts 3.0的一项新功能 - 允许实时更新轴:chart.yAxis[0].update(object)- 因为对象采用与创建图表相同的选项.例如:
chart.yAxis[0].update({
labels: {
enabled: false
},
title: {
text: null
}
});
Run Code Online (Sandbox Code Playgroud)
并且jsFiddle:http://jsfiddle.net/39xBU/2/
编辑:
使用下面的代码段来隐藏/显示轴只需调用axis.hide()和axis.show().现场演示:http://jsfiddle.net/39xBU/183/
(function (HC) {
var UNDEFINED;
HC.wrap(HC.Axis.prototype, 'render', function (p) {
if (typeof this.visible === 'undefined') {
this.visible = true;
}
if(this.visible) {
this.min = this.prevMin || this.min;
this.max = this.prevMax || this.max;
} else {
this.prevMin = this.min;
this.prevMax = this.max;
this.min = UNDEFINED;
this.max = UNDEFINED;
}
this.hasData = this.visible;
p.call(this);
});
HC.Axis.prototype.hide = function () {
this.visible = false;
this.render();
HC.each(this.plotLinesAndBands, function (plotLine) {
plotLine.render();
});
};
HC.Axis.prototype.show = function () {
this.visible = true;
this.render();
HC.each(this.plotLinesAndBands, function (plotLine) {
plotLine.render();
});
};
})(Highcharts);
Run Code Online (Sandbox Code Playgroud)
实际上变得更简单了。您只需将 yAxis title 属性设置为 false:
yAxis: {
title: false
},
Run Code Online (Sandbox Code Playgroud)
这是一个示例:jsfiddle 示例