Javascript &引用;加上“;这不是一个函数

Javascript &引用;加上“;这不是一个函数,javascript,d3.js,data-visualization,Javascript,D3.js,Data Visualization,我是D3新手,在一些图表上做实验。在使用D3V4构建折线图时,我遇到了以下错误 d3.直线(…).x(…).y(…)。插值不是函数 我假设此错误是由于D3 v4中的插值函数不可用。如果有人能帮我用插值函数的替换函数,那就太好了 我的代码在下面的链接中 在D3 v4.x中,直线生成器采用a来定义插值: 虽然直线被定义为二维[x,y]点序列,而区域由顶线和基线类似地定义,但仍有将这种离散表示转换为连续形状的任务:即,如何在点之间插值。为此目的提供了各种曲线[…]曲线通常不直接构造或使用,而是传递到l

我是D3新手,在一些图表上做实验。在使用D3V4构建折线图时,我遇到了以下错误

d3.直线(…).x(…).y(…)。插值不是函数

我假设此错误是由于D3 v4中的插值函数不可用。如果有人能帮我用插值函数的替换函数,那就太好了

我的代码在下面的链接中


在D3 v4.x中,直线生成器采用a来定义插值:

虽然直线被定义为二维[x,y]点序列,而区域由顶线和基线类似地定义,但仍有将这种离散表示转换为连续形状的任务:即,如何在点之间插值。为此目的提供了各种曲线[…]曲线通常不直接构造或使用,而是传递到line.curvearea.curve。(我的重点)

那么这个,

var lineFun = d3.line()
    .x(function(d){return d.month*50})
    .y(function(d){return height - (10* d.Sales)})
    .interpolate("basis")
应该是:

var lineFun = d3.line()
    .x(function(d){return d.month*50})
    .y(function(d){return height - (10* d.Sales)})
    .curve(d3.curveBasis);
以下是更改后的代码:

var w=700;
var高度=300;
var=2;
变量边界=2
var数据集=[5,7,2,6,1,10,8,9,11,13,16,40,15,20,25,35,36,25,28,18,17,4,22,5,3,35,46,57];
月季变种=[
{
“月”:1,
“销售”:10
},
{
“月”:2,
“销售”:25
},
{
“月”:3,
“销售”:12
},
{
“月”:4,
“销售”:16
},
{
“月”:5,
“销售”:17
}
];
onload();
函数onload(){
var svg=d3.选择(“主体”)
.append(“svg”)
.attr(“宽度”,w)
.attr(“高度”,高度)
svg.selectAll(“rect”)
.数据(数据集)
.输入()
.append(“rect”)
阿特斯先生({
x:功能(d,i){
返回(i*(w/dataset.length));},
y:函数(d){return(height-(d*4))},
宽度:(w/dataset.length)-填充,
高度:函数(d){return(d*4);},
填充:函数(d){return“rgb(0)”+(d*10)+“,0)”;}
});
svg.selectAll(“文本”)
.数据(数据集)
.输入()
.append(“文本”)
.text(函数(d){return d})
阿特斯先生({
函数(d,i){return(i*(w/dataset.length))+((w/dataset.length)-padding)/2},
y:函数(d){return(height-(d*4))},
“文本锚定”:“中间”
})
var lineFun=d3.line()
.x(函数(d){返回d.month*50})
.y(函数(d){返回高度-(10*d.Sales)})
.曲线(d3.曲线基);
var svgLine=d3.选择(“正文”).追加(“svg”)
.attr(“宽度”,w)
.attr(“高度”,高度);
var svgPath=svgLine.append(“路径”)
阿特斯先生({
d:lineFun(月刊),
“笔划”:“紫色”,
“笔划宽度”:2,
“填充”:“无”
})
svgLine.selectAll(“文本”)
.数据(每月销售)
.输入()
.append(“文本”)
.text(函数(d){return d.Sales})
阿特斯先生({
函数(d){返回d.month*50-10},
y:函数(d){返回高度-(10*d.Sales)+10},
“字体大小”:“12px”,
“填充”:“#666666”,
“字体系列”:“无衬线”,
“dx”:“.35em”,
“文本锚定”:“开始”,
“字体重量”:函数(d,i){
if(i==0 | | i==monthlySales.length-1){
返回“粗体”
}
否则{
返回“正常”
}
}
})
}