15

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

私の現在のコードは次のようになります

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")

d3 には書式指定子があることに気付きましたが、これらを と組み合わせて使用​​する方法がわかりませんtickFormat

4

1 に答える 1

43

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

ティックをパーセンテージとしてフォーマットする場合は、d3.format%ディレクティブを使用します。

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

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

パーセンテージを有効桁数に丸めたい場合は、代わりにpディレクティブを使用できます。

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

于 2012-04-18T16:25:33.580 に答える