Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.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 错误:未捕获类型错误:无法读取未定义的属性“linear”_Javascript_D3.js - Fatal编程技术网

Javascript 错误:未捕获类型错误:无法读取未定义的属性“linear”

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&

我正在尝试从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>

<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