我目前正在处理堆积条形图,但轴标签有问题。乍一看,标签看起来不错,但我注意到 Y 轴顶部并不总是有刻度。我在下面贴了一张图片。
如您所见,即使有一根柱线明显超过该值,也没有高于 120,000 的刻度线。我意识到轴正在定期创建刻度,但是有没有办法强制最后一个刻度值成为刻度的最大值?如果不是,更好的解决方案是在刻度的顶部说完所有内容后画一条额外的线/标签吗?
我的比例和轴的代码如下:
var max = d3.max(data, function(d) { return d.red_value + d.blue_value; } );
var labelScaleY = d3.scale.linear()
.domain([0, max])
.rangeRound([svg_height-40, 0]);
svg.append("g")
.attr("class", "y_axis")
.call(d3.svg.axis()
.scale(labelScaleY)
.orient("left"))
.attr("transform", "translate(60,20)");
svg.selectAll("line.y_rule").data(labelScaleY.ticks()).enter()
.append("line")
.attr({
"class":"y_rule",
"x1":0,
"x2":(svg_width-60),
"y1":function(d){ return labelScaleY(d);},
"y2":function(d){ return labelScaleY(d);},
"fill":"none",
"shape-rendering":"crispEdges",
"stroke":"black",
"stroke-width":"1px",
"transform":"translate(60,20)"
});