1

这是我正在使用的示例样式:

<?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 图表程序中的一个问题。

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

4

1 回答 1

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>

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

于 2012-01-20T01:27:04.927 回答