Javascript d3.js未捕获类型错误:o不是函数
下面是我使用d3.jes绘制折线图的JavaScript代码:Javascript d3.js未捕获类型错误:o不是函数,javascript,d3.js,Javascript,D3.js,下面是我使用d3.jes绘制折线图的JavaScript代码: var h = 100; var w = 200; var monthlySales = [ {"month":10, "sales":20}, {"month":20, "sales":14}, {"month":30, "sales":20}, {"month":40, "sales":21}, {"month":50, "sales":15}, {"month":60, "sa
var h = 100;
var w = 200;
var monthlySales = [
{"month":10, "sales":20},
{"month":20, "sales":14},
{"month":30, "sales":20},
{"month":40, "sales":21},
{"month":50, "sales":15},
{"month":60, "sales":22},
{"month":70, "sales":9},
{"month":80, "sales":6},
{"month":90, "sales":23},
{"month":100, "sales":7}
];
var lineFunc = d3.line()
.x(function(d){ return d.month * 2;})
.y(function(d){return d.sales;})
.curve("linear");
var svg = d3.select("body")
.append("svg")
.attr("width", w)
.attr("height", h);
var viz = svg.append("path")
.attr("d", lineFunc(monthlySales))
.attr("stroke", "purple")
.attr("stroke-width", 2)
.attr("fill", "none");
它显示了这个错误:
未捕获类型错误:o不是函数
at t (d3.min.js:2)
at d3.html:38
这是触发错误的d3.js代码:
for(null==i&&(u=o(s=ve())),a=0;a<=f;++a)!(a<f&&r(c=t[a],a,t))===l....
对于(null==i&&(u=o(s=ve()),a=0;a您没有正确地传递到函数中,请尝试以下操作:
function lineFunc(d) {
d3.line()
.x(function(d) {
return d.month * 2;
})
.y(function(d) {
return d.sales;
})
.curve("linear");
}
这里的问题就是线路生成器中的这种方法:
.curve("linear");
在D3V4.x中,没有名为“线性”的曲线
您可以简单地删除它或选择正确的曲线。例如
.curve(d3.curveBasis);
以下是更改后的代码:
var h=100;
var w=200;
月收益率=[{
“月”:10,
“销售”:20
}, {
“月”:20,
“销售”:14
}, {
“月”:30,
“销售”:20
}, {
“月”:40,
“销售”:21
}, {
“月”:50,
“销售”:15
}, {
“月”:60,
“销售”:22
}, {
“月”:70,
“销售”:9
}, {
“月”:80,
“销售”:6
}, {
“月”:90,
“销售”:23
}, {
“月”:100,
“销售”:7
}];
var lineFunc=d3.line()
.x(功能(d){
返回d.month*2;
})
.y(功能(d){
退货与销售;
})
.曲线(d3.曲线基);
var svg=d3.选择(“主体”)
.append(“svg”)
.attr(“宽度”,w)
.attr(“高度”,h);
var viz=svg.append(“路径”)
.attr(“d”,lineFunc(每月))
.attr(“笔划”、“紫色”)
.attr(“笔划宽度”,2)
.attr(“填充”、“无”);
感谢并抱歉在查看文档之前提出问题。