Javascript 错误:未捕获类型错误:无法读取未定义的属性“linear”
我正在尝试从iris.CSV获取加载数据,并将其打印到网页中Javascript 错误:未捕获类型错误:无法读取未定义的属性“linear”,javascript,d3.js,Javascript,D3.js,我正在尝试从iris.CSV获取加载数据,并将其打印到网页中 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>D3 Example</title> <script src="https://d3js.org/d3.v3.js"></script> </script> </head&
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>D3 Example</title>
<script src="https://d3js.org/d3.v3.js"></script>
</script>
</head>
<body>
<script>
var svg = d3.select("body").append("svg")
.attr("width", 250)
.attr("height", 250);
var xScale = d3.scale.linear().range([0, 250]);
var yScale = d3.scale.linear().range([0, 250]);
function render(data) {
xScale.domain(d3.extent(data, function(d) {
return d.sepal_length;
}));
yScale.domain(d3.extent(data, function(d) {
return d.petal_length;
}));
var circles = svg.selectAll("circle").data(data);
circles.enter().append("circle").attr("r", 10);
circles
.attr("cx", function(d) {
return xScale(d.sepal_length);
})
.attr("cy", function(d) {
return yScale(d.petal_length);
});
circles.exit().remove();
}
function type(d) {
d.sepal_length = +d.sepal_length;
d.sepal_width = +d.sepal_width;
d.petal_length = +d.petal_length;
d.petal_width = +d.petal_width;
return d;
}
d3.csv("iris.csv", type, render);
</script>
</body>
</html>
但我发现了一个错误
错误:未捕获类型错误:无法读取未定义的属性“linear”
我甚至更改了d3.v4的scaleLinear的线性,这也显示了错误。似乎对我有用我没有CSV文件,所以我只是使用了一些假数据: var svg=d3.selectbody.appendsvg .宽度,250 .身高250; VarXScale=d3.scale.linear.range[10240]; var yScale=d3.刻度.线性范围[10240]; 函数renderdata{ xScale.domaind3.extentdata,函数d{ 返回萼片长度; }; yScale.domaind3.extendData,函数d{ 返回d.花瓣长度; }; var circles=svg.selectAllcircle.datadata; circles.enter.appendcircle.attrr,10; 圈子 .attrcx,已运行{ 返回xScaled.sepal_长度; } .消耗性,功能性{ 返回Y缩放的花瓣长度; }; 圆圈。退出。移除; } 函数类型{ d、 萼片长度=+d.萼片长度; d、 萼片宽度=+d.萼片宽度; d、 花瓣长度=+d.花瓣长度; d、 花瓣宽度=+d.花瓣宽度; 返回d; } 渲染[{ 萼片长度:10, 花瓣长度:20, }, { 萼片长度:15, 花瓣长度:18, } ]
除了代码中的单个标记外,代码看起来还可以。由于d3.select在电子秤声明之前似乎有效,但这不应该是问题的原因。请设置一个演示效果的窗口。这样做时,请尽可能减少和清理代码即使我收到的跨源请求仅支持协议方案:HTTP、数据、chrome、chrome扩展、https错误。我使用的问题是此代码在Google chrome中不起作用。但是在Mozilla firefox中工作。为什么会这样?该文件需要由Web服务器提供服务。尝试运行本地Web服务器,如果您有python,您可以运行python-msimplehttpserver,然后将浏览器指向http://localhost:8000