【发布时间】:2018-05-24 08:58:10
【问题描述】:
我正在尝试自学 D3,我正在使用评价很高的 Curran Kelleher 的 D3 简介 (GitHub Page)
我目前正忙于从 CSV 文件中读取/解析数据。他的代码和预期输出在这里 (D3 Example Code)。
编辑:: 在此处复制/粘贴我的代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>D3 tutorial 10</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/4.12.0/d3.min.js"></script>
</head>
<body>
<script>
var svg = d3.select("body").append("svg")
.attr("width", 250)
.attr("height", 250);
var xScale = d3.scaleLinear().range([0, 250]);
var yScale = d3.scaleLinear().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>
我在我的 d3.html 页面中复制并粘贴了完全相同的代码,但这是我在 Chrome 浏览器窗口中得到的输出。关于我哪里出错的任何想法?
【问题讨论】:
-
我看到有一个 iris.csv 数据文件 - 你的代码也可以使用它吗?
-
是的 - 它与 .html 文件位于同一文件夹中
-
如果你完全复制这个例子,我第一眼看不出任何错误。我建议使用诸如圆半径或区域边距之类的数字,看看它是否有一些效果。如果没有任何帮助,我明天试试这个例子。
-
我认为您可以从他更简单的 d3 和 csv 示例开始 - curran.github.io/screencasts/introToD3/examples/viewer/#/69。这是关于 Plunker 的完整工作示例:plnkr.co/edit/GeBxKTRk0Jq3e6AHayny。按运行,您将看到正确的结果,data.csv 是示例中的数据文件。
标签: javascript d3.js