CFCHART-如何使Y轴从1而不是0开始



以下是我使用的示例样式:

<?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轴值的唯一方法是确保范围/网格线为整数。

相关内容

  • 没有找到相关文章

最新更新