Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript d3.js未捕获类型错误:o不是函数_Javascript_D3.js - Fatal编程技术网

Javascript d3.js未捕获类型错误:o不是函数

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

下面是我使用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, "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(“填充”、“无”);

感谢并抱歉在查看文档之前提出问题。