我正在页面上输出一系列高级图表 . 在某些情况下,指定时间段内的所有数据可能会返回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: ""
}
},
8 回答
我只能通过提供yAxis
max
来获得它来显示它"correctly" . 我认为当您没有提供具有y值的数据元素时,这是一个HighCharts问题 . 它绘制了它认为可以的最佳图表 .我发现了另一个(也很简单)的解决方案:
您可以设置y轴
minRange
属性:这使得Highcharts在所有数据为0时呈现yAxis最小值和最大值 .
更新:
Highcharts 4.1.9修复还需要:
updated js fiddle
我还把它发布到了HighCharts论坛,在那里我收到了似乎有效的回复 . 不幸的是,它将涉及我在渲染图表之前对数据进行一些预处理,以便检查所有“0”数据值......但它会起作用 . 只是希望HighCharts有更“内置”的东西 .
因此,在总结“y”值之后,如果我得到0,则y轴属性应如下所示:
见:http://jsfiddle.net/KM2Jx/2/
键似乎是“max”和“showLastLabel”属性 .
这是我提出的一个修复程序,不需要对数据进行任何预处理,只需让highcharts执行它,就像在更新之前一样 . http://jsfiddle.net/QEK3x/
您只需要检查第一个系列轴,就好像第一个系列轴不是0那么问题就不会发生 . 我可能会向高图表提交拉取请求,尽管我觉得他们出于某种原因想要使用此功能 .
从Highcharts 5.0.1开始,您也可以使用softMax .
以下是柱形图的示例:http://jsfiddle.net/84LLsepj/
请注意,目前,在Highcharts 5.0.7中,它似乎不适用于所有类型的图表 . 正如您在this other jsfiddle中看到的那样,它不适用于折线图 .
只需添加“min”选项即可
对于Highcharts 5.x.x,您应该只能指定:
这不适用于折线图,这要求您还在与上面相同的配置对象中设置
minRange
. 尝试使用不同的值,因为定义了例如minRange: 6
,在yAxis上创建了一个介于0和4之间的范围 .minRange:1或者你感觉如何以分数显示
softMax:100或者你感觉如何