1

以下の例に示すように、数値を含むプロット ラベルを含む、生成された png ベースのチャート ファイルを作成する必要があります。Coldfusion 10 を使用しているため、これは新しい ZingChart エンジンを使用しています。表示されている例は、 ZingChart Builderによって作成されました。

ここに画像の説明を入力

ところで、基本的なグラフを png ファイルに描画して取得し、表示することができます。X と Y のものを正しく取得できます。シリーズを凡例で表示したり、基本的なポジショニングを行ったり、さまざまな種類のチャートを作成したりできます。特にプロットバーのラベルなど、json のオーバーライドに関しては何もできないようです。

私が提供しているコードは、interwebs から精査してテストした例からのものです...しかし、うまく失敗するはずです (ちょうど私の一日のように)。

<cfscript>
    legend = {
        "width":150,
        "height":25,
        "position":"100% 0%",
        "margin-top":10,
        "margin-right":10,
        "margin-left":10,
        "margin-bottom":10,
        "layout":"x2",
        "alpha":0.5,
        "background-color":"##99cc66",
        "background-color-2":"##99cc66",
        "border-color":"##000000",
        "border-width":1,
        "shadow":true,
        "shadow-alpha":1,
        "shadow-color":"##000000",
        "shadow-distance":2,
        "shadow-blur-x":1,
        "shadow-blur-y":1,
        "draggable":false,
        "minimize":false
    };
    type ="bar";
    plot = {
        "value-box":{
            "type":"all",
            "text":"%v",
            "text-align":"center",
            "alpha":0.5,
            "background-color":"##99cc66",
            "background-color-2":"##99cc66",
            "border-color":"##000000",
            "border-width":1
        }
    };
</cfscript>
<cfchart
legend="#legend#"
plot="#plot#"
type="#type#"
showlegend="true"
height="300"
width="1300" 
title="Super fun time!" 
format="png" 
name="moreComplexThanChineseArithmetic">
    <cfchartseries seriescolor="red" seriesLabel="SeriesA"  >
        <cfloop from="1" to="10" index="i">
            <cfchartdata item="" value="#randRange( 5, 100 )#">
        </cfloop>
    </cfchartseries>
    <cfchartseries seriescolor="green"  seriesLabel="SeriesB"  >
        <cfloop from="1" to="10" index="i">
        <cfchartdata item="" value="#randRange( 5, 100 )#">
        </cfloop>
    </cfchartseries>
    <cfchartseries seriescolor="blue" seriesLabel="SeriesC" >
        <cfloop from="1" to="10" index="i">
        <cfchartdata item="" value="#randRange( 5, 100 )#">
        </cfloop>
    </cfchartseries>
</cfchart>
<cfset savedFile = getTempFile("/dynamic/coldfusion/temp/", "moreComplexThanChineseArithmetic") & ".png" />
<cfset fileWrite(savedFile, moreComplexThanChineseArithmetic) />     
<img src="<cfoutput>#savedFile#</cfoutput>" />

私はクラスター化された環境にいます。これらのチャートは HTML を提供しないため、png の回避策があります。さらに、画像は拡大縮小され、PDF にエクスポートできるため、画像のようにする必要があります。正しく表示され、サーバーがレンダリングしてクライアントに送信するため、クライアント側の遅延はほとんどありません。

今。上記のように、#plot# などに変数の置換があります (私が (一日中) 試した json の動作の「どれも」見たことがありません (何かを作るための非常に多くの異なる方法/コンボ)エラーで失敗するか (私が間違えたため)、何もしません (これは驚くほど素晴らしいことです)。

上記の json に問題がある可能性がありますが、再度、新しい json の試行、インライン json も単純化などで変更後に変更を上書きしました。

私が信じていることは、plot value:box text: v% が (妖精の魔法によって) chartdata 値パラメーターの値を、バーの上または下の素敵な数値として返す必要があることです (または、そうなると思います)。何もしないので、期待をテストすることはできません。

詳細が必要な場合はお知らせください...

PS と参考までに: 他のチャート作成パッケージには取り組めません。

4

1 に答える 1

2

まあ、あなたがしなければならないのは、別の日に戦うために完全に敗北して寝ることだけです.

これが解決策です(コンテナに取り付けられてchartseriesいます)。>>>> datalabelstyle="value"

<cfchartseries 
    datalabelstyle="value" 
    type="bar" 
    seriescolor="blue" 
    seriesLabel="SeriesC" >
        <cfloop from="1" to="10" index="i">
        <cfchartdata item="" value="#randRange( 5, 100 )#">
        </cfloop>
</cfchartseries>

さらに重要なことには。JSON は でのみ機能しformat="html"ます ... では機能しませんformat="png"format="png"zingcharts を使用せず、webcharts3D エンジンにフォールバックします。Coldfusion 10 には 2 つのチャート作成エンジンがあります。これが、この奇妙さに陥る他の誰かに役立つことを願っています。また、Coldfusion 11 では、webcharts3d が機能します。 何をすべきかをより明確にするバグの議論があります。

于 2015-02-17T16:02:36.187 に答える