Jquery D3图表无上边距中断

Jquery D3图表无上边距中断,jquery,html,css,svg,d3.js,Jquery,Html,Css,Svg,D3.js,我正在制作下面的D3图表。(我是D3新手)。我正试图从图表中删除上边距,但它破坏了整个过程?我想我对我的高度、宽度和边距有点糊涂,但在无数次尝试和修复之后,我只是不断地让它变得更糟。我怎样才能在不破坏整个图表的情况下去掉最高利润率 $(函数(){ initChart(); }); 函数initChart(){ 变量lineDataActual=[{ “x”:0, y:200 }, { “x”:10, y:50 }, { “x”:20, y:180 }, { “x”:30, y:60 }, {

我正在制作下面的D3图表。(我是D3新手)。我正试图从图表中删除上边距,但它破坏了整个过程?我想我对我的高度、宽度和边距有点糊涂,但在无数次尝试和修复之后,我只是不断地让它变得更糟。我怎样才能在不破坏整个图表的情况下去掉最高利润率

$(函数(){
initChart();
});
函数initChart(){
变量lineDataActual=[{
“x”:0,
y:200
}, {
“x”:10,
y:50
}, {
“x”:20,
y:180
}, {
“x”:30,
y:60
}, {
“x”:40,
y:120
}, {
“x”:50,
y:30
}];
var svg=d3。选择(“可视化”),
宽度=400,
高度=300,
边距={
排名:80,
右:50,,
底部:80,
左:80
},
xMin=d3.min(lineDataActual,函数(d){
返回d.x;
}),
xMax=d3.max(lineDataActual,函数(d){
返回d.x;
}),
yMin=d3.min(lineDataActual,函数(d){
返回d.y;
}),
yMax=d3.max(lineDataActual,函数(d){
返回d.y;
}),
xRange=d3.scale.linear().range([margins.left,width-margins.right]).domain([
xMin,xMax
]),
yRange=d3.scale.linear().range([height-margins.top,margins.bottom]).domain([
yMin,yMax
]),
xAxis=d3.svg.axis()
.刻度(X范围)
.tickSubdivide(真),
yAxis=d3.svg.axis()
.刻度(Y量程)
.东方(“左”)
.tickde(真);
函数make_x_axis(){
返回d3.svg.axis()
.刻度(X范围)
.orient(“底部”)
.tickSubdivide(真)
}
函数make_y_axis(){
返回d3.svg.axis()
.刻度(Y量程)
.东方(“左”)
.tickSubdivide(真)
}
svg.append(“g”)
.attr(“类”、“网格”)
.attr(“变换”、“平移(0)”+(高度-边距.top)+”)
.调用(生成x轴()
.tickSize((-height)+(margins.top+margins.bottom),0,0)
.tick格式(“”)
)
svg.append(“g”)
.attr(“类”、“网格”)
.attr(“转换”、“转换”(+(margins.left)+“,0)”)
.调用(生成y轴()
.tickSize((-width)+(margins.right+margins.left),0,0)
.tick格式(“”)
)
append(“svg:g”)
.attr(“类”、“x轴”)
.attr(“变换”、“平移(0)”+(高度-(边距.bottom))+”)
.呼叫(xAxis);
append(“svg:g”)
.attr(“类”、“y轴”)
.attr(“转换”、“转换”(+(margins.left)+“,0)”)
.呼叫(yAxis);
var lineFunc=d3.svg.line()
.x(功能(d){
返回x范围(d.x);
})
.y(功能(d){
返回y范围(d.y);
})
.插入(“基础”);
变量lineDataIdeal=[{
“x”:xMin,
“y”:yMax
}, {
“x”:xMax,
y:yMin
}];
append(“svg:path”)
.attr(“d”,lineFunc(lineDataIdeal))
.attr(“类”、“理想”);
append(“svg:path”)
.attr(“d”,lineFunc(lineDataActual))
.attr(“类别”、“实际”);
svg.append(“文本”)
.attr(“类别”、“x标签”)
.attr(“文本锚定”、“结束”)
.attr(“x”,宽度)
.attr(“y”,高度-6)
.文本(“天”);
svg.append(“文本”)
.attr(“类别”、“y标签”)
.attr(“文本锚定”、“结束”)
.attr(“y”,6)
.attr(“dy”,“.75em”)
.attr(“变换”、“旋转(-90)”)
.文本(“剩余小时”);
}
.chart{
字体系列:“Arial”;
字体大小:13px;
颜色:#000;
}
.chart>轴路径,
.chart>.axis line{
填充:无;
冲程:#eee;
笔画宽度:2;
形状渲染:边缘清晰;
}
.chart>.axis.tick行{
填充:无;
行程:#999;
笔画宽度:2;
}
.chart>path.ideal{
冲程:#eee;
笔画宽度:5;
笔划线头:圆形;
}
.chart>path.actual{
行程:91E500;
笔画宽度:2;
笔划线头:圆形;
填充:无;
/*填充物:rgba(0,0,0,0.1)*/
}
.chart>.grid.tick{
冲程:#eee;
不透明度:0.5;
}


将margin.bottom更改为0以在画布上向上移动图表。我不是100%确定这为什么有效。我认为这与D3有关,原点在左上角,而不是左下角

谢谢@codeVeritas。我刚才试过了,但似乎不起作用?你有一个工作的例子。代码在预览中看起来很好实际上…出于所有的意图和目的,图形呈现很好。这只是顶部的巨大缺口。如果我尝试删除间隙,图表将中断。您是否一直在更改边距变量中的值或完全删除边距变量?将margin.bottom更改为0,以在画布上向上移动图表。我不是100%确定这为什么有效。我认为这与D3有关,原点在左上角,而不是左下角