高清 - 显示/隐藏y轴而不隐藏系列

Gui*_*ian 26 highcharts

我正在使用Highchart.我有一个多系列图,其中每个系列都有自己的y轴.

非常喜欢这个(jsfiddle)

当我们点击一​​个系列的图例项时,它会隐藏它和相关的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)

  • 这就是重点,用户不应该关注添加要隐藏的选项.`Axis.visibility = false`应该完全隐藏轴,`Axis.visibility = true`应该显示它.这也可以让开发人员不必记住轴的所有先前属性(例如`title.text`),然后在显示轴时恢复它们. (3认同)

Geo*_*ugu 6

实际上变得更简单了。您只需将 yAxis title 属性设置为 false:

yAxis: {
   title: false
},
Run Code Online (Sandbox Code Playgroud)

这是一个示例:jsfiddle 示例