1

円グラフのデータラベルをフォーマットして、小数点以下2文字まで表示し、末尾のゼロが表示されないようにする方法を知りたいのですが、たとえば、次のようになります。

2 -> 2
2.0 -> 2
2.566 -> 2.57

言い換えれば、私はパラメータを設定する方法をdataLabelFormatString尋ねていますか?を使用していることがわかっているsprintfので、「%。2f」と「%g」を試しました。しかし、彼らは私の問題を解決しませんでした。最初の数字は各数字を10進文字で表示するため、もう1つの数字は末尾のゼロを削除するだけですが、この場合はその前に置く数字のように正確には機能しません。たとえば、「%。2g」はキャラクター。

これら2つを効果的に組み合わせる方法がわかりません(それも可能ですか?)。たとえば、パラメータを最初に'%.2f'を使用してフォーマットし、次に'%g'を使用してフォーマットする方法を設定すると、うまくいくはずですが、どうすればよいでしょうか。

if / elseをフォーマットに「注入」することはできますか?そうであれば、どのようにすればよいですか?

そうでなければ、私が考えることができる唯一の方法は、プロットが描画されたら、ラベルを取得しparseFloat(label.toFixed(2))てそれぞれに適用するjqueryスクリプトを実行することです。

4

1 に答える 1

2

このトピックを閉じるために、私はここに私の答えを投稿しています。のおかげで、なんとかこの問題を解決できましたjQuery。繰り返しになりますが、クライアント側で行うことになると、それは実際の節約になるように見えます。:)

私は私の質問で述べた私の考えと同じように、つまりを使用してそれにアプローチしましたparseFloat(label.toFixed(2))。少し逆にしたけど。パラメータに使用labelするチャートを設定することにしました。dataLabelsチャートの描画が終了したら、を使用し$.jqplot.postDrawHooks.push(...)て関数をバインドして実行します。私の関数は、凡例ラベルを変更して、データ配列に設定する前に計算したパーセンテージ値の代わりに名前を表示します。

このアプローチは、私が望むように完全に機能します。興味のある方は、ここで解決策を示している私のjsfiddleを見つけてください。

誰かがより良い解決策を持っているなら、私はいつでも私の答えから受け入れを移動することに非常に熱心です

于 2012-04-26T08:31:29.320 に答える