我正在尝试从csv中绘制圆圈,其中包含一堆x和y坐标。我是D3的新手,不知道接下来要去哪里。这是代码
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://mbostock.github.com/d3/d3.js"></script>
</head>
<body>
<script type="text/javascript">
d3.xml("brussels3.svg", "image/svg+xml", function(xml) {
document.body.appendChild(xml.documentElement);
d3.csv("brusselsconverteddata.csv")
.row(function(d) { return {key: +d.key, value: +d.value}; })
.get(function(error, rows) { console.log(rows); });
var svg = d3.select('svg');
svg.append("circle")
.style("stroke", "gray")
.style("fill", "black")
.attr("r", 15)
.attr("cx", 2142)
.attr("cy", 2209)
.on("mouseover", function(){d3.select(this).style("fill", "aliceblue");})
.on("mouseout", function(){d3.select(this).style("fill", "black");});
});
</script>
</body>
</html>
我不确定如何迭代D3中的坐标列表。我很困惑在cx和cy .attr中放入什么来迭代列表。
答案 0 :(得分:1)
你应该更好地设置csv的回调,目前它缺少第二部分,d3.csv("brusselsconverteddata.csv", function (error, dataset) { //draw something here });
也应该像这样生成圆圈:
svg.selectAll("circles")
.data(dataset)
.enter()
.append("circle")
.attr("r", //your radius value)
.attr("cx", function (d) { return d.the_x_value_in_the_csv; })
.attr("cy", function (d) { return d.the_y_value_in_the_csv; })
等等