Highcharts:确保y轴0值位于图表底部

cha*_*fer 31 highcharts

我正在页面上输出一系列高级图表.在某些情况下,指定时间段内的所有数据可能会返回0值.

在这种情况下,图表如下所示:http://jsfiddle.net/charliegriefer/KM2Jx/1/

只有1个y轴标签,0,它位于图表的中间.

我想强制y轴的0值位于图表的底部,这与页面上有数据的其他图表一致.

尝试了各种yAxis属性,例如"min:0","minPadding:0","maxPadding:0","startOnTick:true".

似乎它应该非常简单,但我不知所措:(

相关的yAxis代码:

yAxis: {
    min: 0, 
    minPadding: 0, 
    startOnTick: true, 
    title: {
        text: ""
    }
},
Run Code Online (Sandbox Code Playgroud)

Bob*_*der 41

我发现了另一个(也很简单)的解决方案:

您可以设置y轴minRange属性:

yAxis: {
    ...
    minRange : 0.1
}
Run Code Online (Sandbox Code Playgroud)

这使得Highcharts在所有数据为0时呈现yAxis最小值和最大值.

更新:

Highcharts 4.1.9修复还需要:

        plotOptions: {
            line: {
                softThreshold: false
            }
        }
Run Code Online (Sandbox Code Playgroud)

更新js小提琴


wer*_*eld 14

只有这样我才能让它"正确地"显示它才能提供yAxis max值.我认为当您没有提供具有y值的数据元素时,这是一个HighCharts问题.它绘制了它认为可以的最佳图表.


cha*_*fer 5

我还将此内容发布到了HighCharts论坛,在那里我得到了似乎有效的回复。不幸的是,这将涉及到我在渲染图表之前对数据进行一些预处理,以便检查所有“ 0”数据值...但是它将起作用。只希望HighCharts有更多“内置”功能。

因此,在对“ y”值求和后,如果得到0,则y轴属性应如下所示:

yAxis: {
    minPadding: 0, 
    maxPadding: 0,         
    min: 0, 
    max:1,
    showLastLabel:false,
    tickInterval:1,
    title: {
            text: ""
    }
}
Run Code Online (Sandbox Code Playgroud)

请参阅:http//jsfiddle.net/KM2Jx/2/

键似乎是“ max”和“ showLastLabel”属性。