0

我的页面中有以下代码。

style 变量保存自定义样式。

  <cfchart chartheight="450" chartwidth="550" gridlines="9"   yaxistitle="Score" scalefrom="20" scaleto="100" style="#style#"   format="png" >
         <cfchartseries query="variables.chart_query" type="scatter"   seriescolor="##000000" itemcolumn="MyItem" valuecolumn="MyScore"/>
     </cfchart>

在我开始之前,请参阅chart_good.jpg。这就是我希望我的报告出现的方式。在 x 轴上,将始终存在三个项目,只要其中至少一个具有值。如果一个项目没有任何值(即 2010 年),则图表中不会有标记。

仅当只有一项具有价值时才会出现问题。请参阅chart_bad.jpg。如您所见,2008 和 2010 没有任何值;y 轴现在从 0 缩放到 100。我尝试将其中一项(例如 2008 年)设置为 0 或图表之外的值;它将根据这个图表外的值和 2009 年的值进行缩放。简而言之,我必须至少有两个项目的值在 20 到 100 之间,以便 cfchart 从 20 扩展到 100。

我的问题是,我怎样才能纠正这个问题,以便 cfchart 总是从 20 扩展到 100?我正在运行 CF9。

4

1 回答 1

0

你的风格变量里面有什么?

我建议不要在 cfchart 标签中使用 scaleFrom="" 和 scaleTo="" ,因为它们有时可能会出错。我相信 Coldfusion 的 cfchart 标签会尝试将图表自动缩放到它认为最合适的位置。相反,我会在 frameChart 标记内构建图表的最小和最大比例。

用于构建图表的样式变量示例

<cfsavecontent variable="style">
  <?xml version="1.0" encoding="UTF-8"?>

  <frameChart is3D="false" font="Arial-11-bold">
    <frame xDepth="0" yDepth="0" outline="black" lightColor="#CCCCCC" darkColor="#CCCCCC"
            wallColor="#CCCCCC" frameSize="5" dashSize="3" gridColor="#333333">
        <background type="HorizontalGradient" maxColor="#828EB0"/>
    </frame>



    <!---  THE BREAD AND BUTTER 
           NOTE: if you use variables for the scaleMin and scaleMax
           make sure to surround them with a cfoutput tag
    --->

    <yAxis scaleMin="20" scaleMax="100">
    <!--- --------------------- --->

        <labelFormat style="Currency" pattern="#,##0"/>
        <parseFormat pattern="#,##0"/>
        <titleStyle></titleStyle>
    </yAxis>

    <legend allowSpan="true" isVisible="false" placement="Bottom" valign="Bottom" foreground="black"
            isMultiline="true">
        <decoration style="None"/>
    </legend>

    <elements outline="black" shapeSize="40"/>
    <popup background="#748BA6" foreground="white"/>
    <paint palette="Modern" paint="Plain" isVertical="true"/>
    <insets right="5"/>

   </frameChart>

</cfsavecontent>

然后您所要做的就是将变量加载到您已经提到的样式属性中。

<cfchart format="png" chartWidth="550" chartHeight="175" style="#style#">

Webcharts 程序也是一个很好的使用资源,它将位于您的 C:/coldfusion/charting/ 目录中。只需打开webcharts.bat,创建您的自定义图表,将 xml 代码复制到您的样式变量中,瞧!

如果您决定走这条路线,请确保从您的 cfchart 标记中删除 scaleTo= 和 scaleFrom=。

于 2011-11-22T16:34:23.960 回答