これに基づいた棒グラフを使用していて、x軸ラベルを変更したい(ラベルを回転させるか、1つおきまたは3つおきにのみ表示する...ラベルを重ねずに合わせることができるもの) )。私はこれを調べるのにかなりの時間を費やしましたが、言うのは簡単なようです(私はd3にかなり慣れていませんが)。問題のコードセグメントは次のようなものだと思います。
var x = d3.scale.ordinal()
.rangeRoundBands([0, width], .1);
..。
var xAxis = d3.svg.axis()
.scale(x)
.orient("bottom");
..。
x.domain(data.map(function(d) { return d.State; }));
...上記はマッピングが行われる場所です(「map」関数に基づいていると思います)
svg.append("g")
.attr("class", "x axis")
.attr("transform", "translate(0," + height + ")")
.call(xAxis);
..。
var state = svg.selectAll(".state")
.data(data)
.enter().append("g")
.attr("class", "g")
.attr("transform", function(d) { return "translate(" + x(d.State) + ",0)"; });
..。
state.selectAll("rect")
.data(function(d) { return d.ages; })
.enter().append("rect")
.attr("width", x.rangeBand())
.attr("y", function(d) { return y(d.y1); })
.attr("height", function(d) { return y(d.y0) - y(d.y1); })
.style("fill", function(d) { return color(d.name); });
問題は、チャート内のすべてのバーにx軸ラベルが必ずしも必要ではないことです(乱雑になりすぎます)。私はすでにいくつかの異なる使用方法を試しました
axis.ticks
axis.tickValues
axis.tickSubdivide
axis.tickSize
しかし、d.Stateがそれぞれの列と結婚しているために失敗すると思います(私のグラフでは、州の名前の代わりに日付が使用されています)...何か洞察はありますか?
面倒な質問でごめんなさい。私の質問をより明確にするために私が何を求めているのかを理解している人による編集を歓迎します(私はそれを尋ねる最良の方法がわかりません)。