2012-04-18 18 views
12

私はグラフを作っています。y軸目盛のラベルを(小数ではなく)パーセンテージで表示します。これどうやってするの?y軸をパーセンテージで表示しますか?

私の現在のコードは、私がd3はformat specifierを持っていることに気づいた何か

yAxis 
    .append("text") 
    .attr("class", "ticklabel") 
    .attr("x", 0) 
    .attr("y", y) 
    .attr("dy", ".5em") 
    .attr("text-anchor", "middle") 
    .text(y.tickFormat(5)) 
    .attr("font-size", "10px") 

のように見えますが、私は tickFormatと一緒にこれらを使用するかどうかはわかりません。

答えて

36

手作業で軸をオーサリングしているようです。代わりにd3.svg.axisコンポーネントを使用することをお勧めします。これはレンダリングを行います。たとえば、次のように

フォーマットしたい場合は、d3.format%ディレクティブを使用、割合としてダニ:あなたが代わりにPを使用することができます

var formatPercent = d3.format(".0%"); 

var yAxis = d3.svg.axis() 
    .scale(y) 
    .orient("left") 
    .tickFormat(formatPercent); 

をディレクティブを使用して、有効数字の割合に丸めたい場合に使用します。

質問に直接答えるには、の代わりにd3.format を使用します。スケールは便宜上デフォルトのtickFormatを提供しますが、動作が異なる場合は、スケールのデフォルトではなくカスタムd3.formatを使用します。

関連する問題