0

私は cfchart/cfchartseries を使用しており、相互に関連するデータのグループがいくつかあるため、グループを 1 つのグラフに表示したいと考えています。各グループのデータ ポイントの数は明らかに同じでなければなりませんか? そうでない場合、cfchart は、短いグループを最長のバーでパディングします。

<cfset ra=[[30,20,40],[50,10,90,40,70,30],[88,72,64,81]]>
<cfset lstColors="">
<cfset ra1Cnt=0>
<cfloop array="#ra#" index="idx1">
    <cfset ra1Cnt=ra1Cnt+1>
    <cfif ra1Cnt eq 1><cfset raColor=["44","99"]>
    <cfelseif ra1Cnt eq 2><cfset raColor=["88","66"]>
    <cfelseif ra1Cnt eq 3><cfset raColor=["BB","33"]>
    </cfif>
    <cfloop array="#idx1#" index="idx2"><cfset lstColors=listAppend(lstColors, "###formatBaseN(255*(100-idx2)/100, 16)##raColor[1]##raColor[2]#")></cfloop>
    <cfset lstColors=listAppend(lstColors, "##FFFFFF")>
</cfloop>
<cfchart format="png"
    backgroundcolor ="##eeeeee"
    chartheight="270"
    chartwidth="450"
    labelformat="number"
    scaleto="100"
    xoffset=".020"
    yoffset=".020"
    >
    <cfloop from="1" to="6" index="ix">
        <cfchartseries serieslabel="#chr(ix+75)#" type="bar" colorlist="#lstColors#">
        <cfloop from="1" to="#arraylen(ra)#" index="iy"><cfif arraylen(ra[iy]) gte ix>
            <cfchartdata item="#chr(iy+65)#" value="#ra[iy][ix]#">
        </cfif></cfloop>
        </cfchartseries>
    </cfloop>
</cfchart>

<cfif><cfif>最初のグループ (3 つだけが必要) と 3 番目のグループ (4 つだけ) のバーがグラフに表示されないようにすることを期待しますが、いいえ! 40、70、30 が追加され、すべてのグループが 6 つのバーを持つようになります。 3 つのグループすべてに 6 本のバーを表示するチャート

わかりました、私はこれに本当に悩まされ、それを選び続けました.

<cfchartseries type="bar" colorlist="#lstColors#">
<cfset ra1Cnt=0>
<cfloop array="#ra#" index="idx1">
    <cfif ra1Cnt><cfchartdata item=" " value="0"></cfif>
    <cfset ra1Cnt=ra1Cnt+1>
    <cfset ra2Cnt=0>
    <cfloop array="#idx1#" index="idx2">
        <cfset ra2Cnt=ra2Cnt+1>
        <cfchartdata item="#chr(ra1Cnt+65)# #chr(ra2Cnt+75)#" value="#idx2#">
    </cfloop>
</cfloop>
</cfchartseries>

ここに画像の説明を入力

4

0 に答える 0