1

gRaphael 円グラフは 10 セクターのみを受け入れ、残りは合計の 10% 未満である「OTHER」にしました。他に"?

ありがとう、ミティリ

4

1 に答える 1

1

これは現在 g.bar クラスのオプションではないため、これを実現するにはソース コードを更新する必要があります。

彼らが g.pie.js の「その他」セグメントで何をしたかを見た後、次のことをお勧めします。

  • 「maxbars」などと呼ばれる属性配列にオプションを追加します。このオプションを渡すと、グラフに表示されるバーの最大数になります。maxbars = 10 で 10 を超えるセグメントがある場合、1 から 9 までが一意になり、10 は 10 番目から最後までの組み合わせになります。
  • 値配列の処理方法のため、最初にアクセスする前に値配列を上書きするのが最善の解決策だと思います。vbarchart と hbarchart の両方で、チャート要素が初期化された直後に、次のような for ループを追加する必要があります。

    if (values.length > opts.maxbars) {
        for (var i = maxbars; i < values.length; i++) {
            values[maxbars-1] += values[i];
            values[i] = null;
        }
    }
    

    これは、10 番目の要素 (たとえば) の後のすべての値を 10 番目の要素に追加し、配列内の残りのスロットをクリアします。これで、10 要素の配列ができました。10 番目は 10 番目以上の要素の合計です。この単純なループでは、各値が配列ではない場合のみを説明したことに注意してください。values[i][j] を確認し、values[i] の代わりにそれらの要素を追加する必要があります。これには、ネストされた for ループまたは三項演算子が必要になる可能性があります。g.bar の残りの部分をチェックして、これが他の場所でどのように処理されているかを確認してください。

  • ラベルを描画するコードの部分では、 if (opts.maxbars && (i == opts.maxbars - 1)) { // バーに「OTHER」のラベルを付ける }

申し訳ありませんが、これを実装する実際の作業コードはありませんが、もう少し複雑で試行錯誤が必要です。これがあなたを正しい方向に向けることを願っています。

于 2012-10-19T02:39:22.700 に答える