我正在使用D3 v4。我有一个使用scaleBand()
用x轴创建的条形图。现在,我创建了一个y轴,但我的问题是,无论我如何定位它,它都会切入图的实际条。在D3 v4中,我应该如何正确对齐坐标轴?
在我的JS文件的顶部,我有:
变种宽度= 350; var height = 300;
然后,在我实际创建Y轴的部分:
var y = d3.scaleLinear()
.domain([0, 300000])
.rangeRound([height, 0]);
var yAxis = d3.axisRight(y);
yAxis.ticks(6);
chart.append("g")
.attr("class", "y axis")
.attr("transform", "translate(" + (width - dist_from_right) + ", 0)")
.call(yAxis);
正如你可以从图片中看到,轴延伸的SVG的高度的整体性,从底部到顶部意味着0的一半被切断,30万的一半被切断。
第一个问题:如何“挤压”(或缩放)y轴,使其显示在SVG的范围内?
接下来,我想翻译Y轴,以便它不切入我的红色条。如果我尝试使用transform
属性,我可以将轴向远处推到SVG边界的右侧,但这意味着数字离开SVG边界。我也尝试增加width
变量,但它什么都不做,因为它只是按比例延伸x轴。
第二个问题:如何移动y轴,使其不会切入x轴和红色条,并且在SVG窗口中仍然可见?
谢谢!
我想你应该建立一个[MCVE] –