1

我有以下图表

http://jsfiddle.net/hcJjX/2/

如果您注意到此处的 y 轴值始终为“0”。但这条线画在图表的中间。但是,我希望将这条线绘制在“x 轴”之上,如下所示(如果至少有一个非零值就会这样):

http://jsfiddle.net/hcJjX/2/

我在这里缺少什么吗?

4

3 回答 3

3

该图表无法计算合理的 y 轴刻度,因为它没有最小/最大值继续。如果你告诉它一个最大值,那么它会按照你的意愿呈现:

 yAxis: {
    endOnTick: false,
    minPadding: 0,
    max:1
},

如果您不想遍历数据以确定所有点是否为零,请让 highcharts 为您完成工作,因为它必须计算最小值/最大值。您可以调用 getExtremes 来计算最大 y 值,并使用 setExtremes 强制特定最大值:

chart: {
        plotBorderWidth: 1,
        type: 'column',
        events: {
            load: function (event) {
                var extremes = this.yAxis[0].getExtremes();
                if (extremes.dataMax == 0) {
                    extremes.max = 1;
                    this.yAxis[0].setExtremes(0, 1);
                }
            }
        }
    },

http://jsfiddle.net/CbwrB/

于 2013-07-09T10:51:57.257 回答
0

此处,类型为日期时间值的列。因此,请使用“null”而不是 0。

如下所示,

系列:[{
数据:[[1373308338468,null],[1373308938471,null]]
}]

但是在 yAxis 上的解决方法是 minRange 到“0.01”

例子,

yAxis: { min: 0, minRange: 0.01 }

于 2015-07-08T12:07:36.910 回答
-1

如果即使值为零,您也可以查看图表,您可以使用

plotOptions: {
 series: {
   minPointLength: 3
 }
},

这是您更新的小提琴http://jsfiddle.net/hcJjX/4/

希望这会有用

于 2013-07-09T12:29:40.880 回答