0

線形目盛りがあり、チャートの軸の 1 つに使用しています。

正の数のみを表示するカスタム形式を定義したいので、この例に従って、次の方法で customFormat を作成しました。

    function yFormat(formats) {
        return function(value) {
            var i = formats.length - 1, f = formats[i];
            while (!f[1](value)) f = formats[--i];
            return f[0](value);
        };
    }

    var customFormat = yFormat([
        [d3.format("?????"), function() { return true }],
        [d3.format("d"), function(d) { return d >= 0 }]
    ]);

emptyしかし、数値のフォーマットを定義する方法がわかりません(ドキュメントへのリンク

誰かアイデアがありますか?ありがとう

編集

d3.format("")時間スケールでは機能するようですが、線形スケールでは機能しないようです。コンソールで:

> var emptyTime = d3.time.format("");
  undefined
> emptyTime("something");
  ""
> var emptyInt = d3.format("");
  undefined
> emptyInt(5);
  "5"

答え

軸自体で tickValues を使用しているだけです。したがって、次のようなものです:

yAxis.tickValues(
            d3.range(
                0,
                d3.max(y.domain()),
                shift
            )
        );
4

0 に答える 0