以下是我使用的示例样式:
<?xml version="1.0" encoding="UTF-8"?>
<frameChart is3D="false">
<frame xDepth="3" yDepth="1" leftAxisPlacement="Back" isHStripVisible="true">
<background minColor="#FDFEF6"/>
</frame>
<yAxis scaleMin="1" scaleMax="500">
<labelFormat pattern="#,##0.###"/>
<parseFormat pattern="#,##0.###"/>
</yAxis>
<legend>
<decoration style="None"/>
</legend>
<elements place="Default" shape="Line" drawShadow="true">
<morph morph="Grow"/>
</elements>
</frameChart>
上面的代码将显示0而不是1。
这似乎是使用cfchart时常见的问题,但在web charts程序中也是一个问题。
有人有好的解决方案吗?
简短回答:这是可能的,但在您的特定情况下会有一些副作用。
更长的答案:通过指定labels
(即网格线)的数量,可以强制y轴从1开始。但是,只要该范围是奇数(ie 500 - 1 ==> 499
),一些y轴值就可能不均匀排列。
<!--- labelCount is number of grid lines + 1 --->
<yAxis scaleMin="1" scaleMax="500" labelCount="6">
<labelFormat style="Integer" pattern="#,##0"/>
</yAxis>
这是因为y轴值是通过将scale range
除以网格线的数量来计算的。具有通常产生小数的奇数范围。例如,如果生成五(5)条网格线,则轴值为:
Actual => Rounded Value
500.0 => 500
400.2 => 400
300.4 => 300
200.6 => 201 **
100.8 => 101 **
1.0 => 1
让完全控制所有y轴值的唯一方法是确保范围/网格线为整数。