d3.js および nvd3.js の軸とラベルの精度の書式設定
質問
この例にあるように積み上げ面グラフを使用するhttp://nvd3.com/ghpages/stackedArea.html
Y 軸の目盛りラベルとツールチップ ラベルを浮動小数点数ではなく整数に書式設定しようとしています。次のコードを変更してみました
chart.yAxis
.axisLabel('Users')
.tickFormat(d3.format(',.2f'));
に
chart.yAxis
.axisLabel('Users')
.tickFormat(d3.format(',.0d'));
精度は変わりません(値は 100 分の 1 の位まで表示されます)。Github Wikiに従っても無駄でした https://github.com/mbostock/d3/wiki/Formatting#wiki-d3_format
ご提案やヒントをいただければ幸いです。
解決
は現時点ではNVD3 ではサポートされていません。この問題を参照してください line
さらに、フォーマット仕様は正しくありません。ドキュメントで述べたように、"d"
は非整数値を無視します。だからあなたはおそらく代わりに",.0f"
を望んでいるでしょう、これは次のことを意味します:
-
,
:千を分けるためにコンマを使用します。 -
.0
: PRECISION のゼロ(これの正確な意味は、どの Type が使用されているか)です。 -
f
: type 。この場合、 number.tofixed 。これは、小数点の後に一定の数字( precision )が表示され、必要に応じて数字が丸められます。
他のヒント
これはラベルテキストを浮動小数点数から整数にフォーマットできます。
円グラフの場合:
chart.pie.valueFormat(d3.format(',.0d'));
折れ線グラフの場合:
chart.yAxisTickFormat(d3.format(',.0d'));
.tickFormat
メソッドの.yAxis
メソッドは正しく更新されません。これは私が使った周りの仕事です:
chart.yAxisTickFormat(d3.format(',.0d'));
. このようにしてみました
.axisLabel('%').tickFormat(function(d) { return parseFloat(d).toFixed(1) + "%"; });
.
私のために働く。私は小数点と割合で結果を得る。
所属していません StackOverflow