隐藏系列而不隐藏y轴

时间:2014-10-03 08:36:17

标签: javascript jquery css highcharts alignment

有很多隐藏Y-Axis without hiding the series的例子 - 但我需要与此相反。

我想让一个系列看不见,同时仍然显示y轴,我不知道怎么做!

为什么吗

因为我有2个图表,它们的x轴完全对齐: enter image description here

但是当我禁用两个温度字段时,轴将丢失,并且图表的大小不正确: enter image description here

我也不喜欢禁用所有并且丢失整个图表样式的想法: enter image description here

有一个空图表没有问题,但是有一个空白框不是我想要达到的样式。

我试图在legendItemClick事件中操纵轴,但是选择正确的轴并将其值设置为可见并没有成功。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

我认为你有两个选择:

  • margins一起玩 - 修复它们
  • 为轴设置minmax,因此标签将保留在图表上:example

如果您在开始时不知道最小/最大值,您可以在legendItemClick中更改它们,如下所示:

 plotOptions: {
        series: {
            events: {
                legendItemClick: function() {
                    var temperatur = this.chart.series[0];
                    var taupunkt = this.chart.series[1];
                    var other = this.name=="Lufttemperatur"?taupunkt:temperatur;
                    var element = this;
                    if(this.name == "Lufttemperatur" || this.name == "Taupunkt") {
                        if(this.visible && !other.visible) {
                            //both will be invisible soon
                            this.chart.yAxis[0].update({
                                min:element.yAxis.min,
                                max:element.yAxis.max
                            });
                        } else {
                            //one will be visible
                            this.chart.yAxis[0].update({
                                min:null,
                                max:null
                            });
                        }
                    }
                }
            }
        },
 }

如果您的系列中没有任何一个可见,则此选项仅设置最小/最大值,但如果您有一个可见系列则删除它