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

时间:2012-01-19 18:08:51

标签: coldfusion cfchart

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

<?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的常见问题,但它似乎也是网络图表程序中的一个问题。

有没有人有一个好的解决方案?

1 个答案:

答案 0 :(得分:0)

简答:有可能,但在您的具体情况下会有一些副作用。

更长的回答: 您可以通过指定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>

这是因为通过将scale range除以网格线的数量来计算y轴值。奇数范围通常产生小数。例如,如果生成五(5)个网格线,则轴值为:

Actual   => Rounded Value
500.0    => 500
400.2    => 400
300.4    => 300
200.6    => 201  **
100.8    => 101  **
  1.0    => 1

完成控制所有y轴值的唯一方法是确保范围/网格线可以达到整数。