Javascript 在Y轴上具有相对最小值和最大值的D3.js折线图

Javascript 在Y轴上具有相对最小值和最大值的D3.js折线图,javascript,d3.js,charts,nvd3.js,Javascript,D3.js,Charts,Nvd3.js,考虑以下VND3线形图: 曲线图绘制的是直线,但我的大部分数据都是长时间的静态数据,两个系列始终有一个在图形顶部,另一个在底部轴上 如何为y轴创建相对最小值和最大值,以使该系列的直线几乎位于中间或至少间隔,使得低值序列几乎不完全位于X轴上。 需要在最小值下方加100个单位,在最大值上方加100个单位,这样线条就不会出现在图形的顶部或底部 我试着像这里一样设置域和范围值,但没有效果 var yScale = d3.scale.linear() .domain([ d3.min(data,

考虑以下VND3线形图:

曲线图绘制的是直线,但我的大部分数据都是长时间的静态数据,两个系列始终有一个在图形顶部,另一个在底部轴上

如何为y轴创建相对最小值和最大值,以使该系列的直线几乎位于中间或至少间隔,使得低值序列几乎不完全位于X轴上。 需要在最小值下方加100个单位,在最大值上方加100个单位,这样线条就不会出现在图形的顶部或底部

我试着像这里一样设置域和范围值,但没有效果

var yScale = d3.scale.linear()
.domain([
     d3.min(data, function (d) {
         return d.y;
     }) - 100,
     d3.max(data, function (d) {
         return d.y;
     }) + 100
])
.range([
     d3.min(data, function (d) {
         return d.y;
     }),
     d3.max(data, function (d) {
         return d.y;
     })
]);

您需要通过向图表实例化添加
.force([0500])
来强制轴范围

可能会有帮助。这至少可以为您指出正确的方向。

使用“.forceY()”可能会重复使Y轴“静态”,当您通过单击图例添加或删除序列时,图表不会设置动画并调整Y轴以反映当前序列的最大值和最小值。我正在寻找一种使图表保持相同行为的方法,只需将一定数量的单位添加到当前系列的最大值和最小值。我认为.forceX()或.forceY()不起作用,然后我在回答中注意到,需要将范围放入数组中,并将其传递给方法。