2

検討:

value1 = 5;
v1_color = #ff0000;

value2 = 4;
v2_color = #00ff00;

value3 = 3;
v3_color = #0000ff;

var r = Raphael("holder");
pie = r.piechart(320,320,250,{value1,value2,value3},{colors: [v1_color, v2_color,v3_color]});

これにより、上のスライスが赤、右下のスライスが緑、最後のスライスが青の円グラフが作成されます。ただし、値が次のように変更された場合:

value1 = 4;
value2 = 3;
value3 = 5;

グラフはまったく同じように見えますが、色は適切な値を表していないことになります。ソースコードの99〜101行目は、並べ替えられている値を示していますが、それ以外は何も示していません。

オプションにリストされている最初の色を取得する最大の変数ではなく、色がどれほど大きくても、特定の変数に対応する色が必要です。

スライスを描画するコードの部分(133行目)では、を参照してopts.matchColorsいますが、関数を呼び出すときにそれを設定する方法についてのドキュメントが見つかりません。

これを達成する方法はありますか?

4

1 に答える 1

7

残念ながら、opts.matchColorsはまさに必要なものであるため、まったく文書化されていません。

opts.matchColorsは、colors配列の順序をvalues配列の順序と一致させるように強制します。値をサイズ順に並べ替えると、元の値で色がウェッジに適用されます。

matchColorsのデフォルトはfalseであるため、次のようにオプション配列に明示的に設定する必要があります。

var pie = r.piechart(320、320、//中央
                     250、//半径
                     [
                         value1、
                         value2、
                         value3
                     ]、
                     {{
                         色:[
                                            v1_color、
                                            v2_color、
                                            v3_color
                                        ]、
                          matchColors:true
                     });
于 2013-01-16T00:35:08.533 に答える