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 軸には、少なくとも 1 つに値がある限り、常に 3 つの項目があります。項目に値がない場合 (2010 など)、グラフにマーカーは表示されません。

この問題は、1 つのアイテムのみが値を持つ場合にのみ発生します。chart_bad.jpgをご覧ください。ご覧のとおり、2008 年と 2010 年には値がありません。y 軸は 0 から 100 にスケーリングされます。アイテムの 1 つ (例: 2008 年) の値を 0 またはチャートから外れた値に設定しようとしました。このチャート外の値と 2009 年の値に従ってスケーリングされます。つまり、cfchart が 20 から 100 にスケーリングするには、値が 20 から 100 の間の項目が少なくとも 2 つ必要です。

私の質問は、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#">

また、使用するのに最適なリソースは、C:/ coldfusion /charting/ディレクトリにあるWebchartsプログラムです。webcharts.batを開き、カスタムチャートを作成し、xmlコードをスタイル変数にコピーするだけです。

このルートを使用する場合は、cfchartタグからscaleTo=とscaleFrom=を必ず削除してください。

于 2011-11-22T16:34:23.960 に答える