CFCHART - Как заставить ось Y начинаться с 1 вместо 0 - PullRequest
1 голос
/ 19 января 2012

Вот пример стиля, который я использую:

<?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 голосов
/ 20 января 2012

Краткий ответ: Возможно, но в вашем конкретном случае есть некоторые побочные эффекты.

Более длинный ответ: Вы можете заставить ось Y начинаться с 1, указав число labels (т.е. линии сетки). Но поскольку диапазон представляет собой нечетное число (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 - это обеспечить, чтобы линии диапазона / сетки работали с целым числом.

...