在d3.js中截断末端的网格线
我想切掉图表末尾的网格线。如果我删除xScale中的填充,则结束勾号“2016”的“16”将被删除。 我应该修复哪个部分,yScale、xScale还是网格线在d3.js中截断末端的网格线,d3.js,D3.js,我想切掉图表末尾的网格线。如果我删除xScale中的填充,则结束勾号“2016”的“16”将被删除。 我应该修复哪个部分,yScale、xScale还是网格线 //Define X axis xAxis = d3.axisBottom() .scale(xScale) .ticks(10)
//Define X axis
xAxis = d3.axisBottom()
.scale(xScale)
.ticks(10)
.tickFormat(formatTime);
//Define Y axis
yAxis = d3.axisLeft()
.scale(yScale)
.ticks(5);
//Define Y axis gridlines
function make_y_gridlines() {
return d3.axisLeft(yScale)
}
//Create axes
svg.append("g")
.attr("class", "axis x")
.attr("transform", "translate(0," + (h - padding) + ")")
.call(xAxis);
svg.append("g")
.attr("class", "axis y")
.attr("transform", "translate(" + padding + ",0)")
.call(yAxis);
// add the Y gridlines
svg.append("g")
.attr("class", "grid")
.attr("transform", "translate(" + padding + ",0)")
.call(make_y_gridlines()
.tickSize(-w)
.tickFormat("")
)
由于x轴定义为:
.range([padding, w - padding * 2])
这意味着,图形从svg容器左侧的1*padding
开始,到左侧的width-2*padding
结束。这意味着图形的宽度(相对于svg容器的宽度)是width-3*padding
因此,y网格线的实际大小应为宽度-3*填充
在代码中,这意味着您可以只替换y网格线定义中的ticksize:
.tickSize(-w)
与:
这是
-(w-3*填充)
,因为默认情况下,滴答声位于y轴的左侧,这里我们希望它们位于右侧。您能减少填充吗?您能提供一个完整的示例让我们使用它吗?@XavierGuihot
.tickSize(-w + 3*padding)