我正在使用基于此的条形图,并且我想修改 x 轴标签(旋转它们或只显示每隔一个或每隔三分之一......这将允许我在不重叠的情况下拟合标签)。我花了很多时间研究这个,但似乎说起来容易做起来难(尽管我对 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; }));
...上面是映射发生的地方(我假设基于“地图”功能)
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 与其各自的列结婚(我的图表使用日期而不是州名)......有什么见解吗?
对不起这个混乱的问题。我欢迎那些了解我所要求的内容的人进行编辑,以使我的问题更加清楚(我不确定提出问题的最佳方式)。