在 NVD3 折线图最大值和最小值中添加更多 space(填充)

Add more space (padding) into NVD3 line chart max and min

举个例子:
krispo.github.io/angular-nvd3/#/lineChart

我想在折线图的 min/max 和 x-axis/top 之间添加更多 space(一种填充)。

有一个option called yDomain:

Defines the whole Y scale's domain. Using this will disable calculating the domain based on the data.

粗体部分表示如果我将最小值设置为 -100,如果我的图表低于该水平,我将不再看到它。或者,如果我的图表的最小值实际上是 -50,那么 -100 就太多了。

所以基本上我希望 Y 轴的最小值和最大值分别为图表最小值和最大值的 10%。

找到解决方案。这只是数学。 :/

我们需要先得到y-min/y-max:

const min = Math.min(...data.map(d => d.y));
const max = Math.max(...data.map(d => d.y));

然后(如果我们想要 15% 的边距):

{
    ...
    yDomain: [min - (max - min) * 0.15, max + (max - min) * 0.15]
    ...
}