Javascript D3.js:如果我添加这两条语句,为什么柱状图会转过来
嘿,我有一个条形图,我知道在svg中,x=0和y=0位于左上角,因此图形显示为向下。如果我加上几句话,它就会转过来Javascript D3.js:如果我添加这两条语句,为什么柱状图会转过来,javascript,d3.js,svg,Javascript,D3.js,Svg,嘿,我有一个条形图,我知道在svg中,x=0和y=0位于左上角,因此图形显示为向下。如果我加上几句话,它就会转过来 var w=500; var h=100; var=1; var数据集=[5,4,6,7,8,10,2,3,4,5,6,25,34,54,64,32,11,32,42,5,10,15,20,25,30,35,40]; var svg=d3.选择(“主体”) .append(“svg”) .attr(“宽度”,w) .attr(“高度”,h); var rectangles=svg
var w=500;
var h=100;
var=1;
var数据集=[5,4,6,7,8,10,2,3,4,5,6,25,34,54,64,32,11,32,42,5,10,15,20,25,30,35,40];
var svg=d3.选择(“主体”)
.append(“svg”)
.attr(“宽度”,w)
.attr(“高度”,h);
var rectangles=svg.selectAll(“rect”)
.数据(数据集)
.输入()
.append(“rect”)
.attr(“x”,函数(d,i){
返回i*(带数据集长度);
})
.attr(“y”,函数(d){
返回h-d;
})
.attr(“宽度”,w/dataset.length-条形填充)
.attr(“高度”,功能(d){
返回d*4;
})
.attr(“填充”,功能(d){
返回“rgb(0,0,+(d*10)+”);
});代码>
在这种特殊情况下,y值在正确位置被截断的原因是svg的高度为100。但是如果仔细检查svg,每个矩形都会延伸到svg的底部之外,它们只是不可见,因为没有溢出
h-d对于起始y位置是正确的,如果值为60,那么(100-60)将等于40,正如您正确说明的那样。但是,实际高度应为d,而不是d*4。我不知道d*4是从哪里来的
因此,如果您的值是60,那么y将是40,高度将是60,这将延伸到svg的底部
希望这有帮助。在这种特殊情况下,y值在正确位置被截断的原因是svg的高度为100。但是如果仔细检查svg,每个矩形都会延伸到svg的底部之外,它们只是不可见,因为没有溢出
h-d对于起始y位置是正确的,如果值为60,那么(100-60)将等于40,正如您正确说明的那样。但是,实际高度应为d,而不是d*4。我不知道d*4是从哪里来的
因此,如果您的值是60,那么y将是40,高度将是60,这将延伸到svg的底部
希望这有帮助。svg矩形的y
位置是矩形的顶部。底部是y+height
。svg矩形的y
位置是矩形的顶部。底部为y+高度
。