【发布时间】:2017-09-29 01:04:17
【问题描述】:
我正在尝试生成随机数以使用 d3js 创建散点图。我是按以下方式做的:
//declare an array of arrays
var dataset = [
[]
];
var inner = [];
/*
set the svg width and height
*/
var svgWidth = 500;
var svgHeight = 100;
var xCoord = 0;
var yCoord = 0;
for (var i = 0; i < 20; i++) {
do {
xCoord = Math.floor(Math.random() * svgWidth);
yCoord = Math.floor(Math.random() * svgHeight);
} while (xCoord <= 0 | yCoord <= 0);
if (xCoord > 0 && yCoord > 0) {
inner.push(xCoord);
inner.push(yCoord);
dataset.push(inner);
}
inner = [];
}
var svg = d3.select("body")
.append("svg")
.attr("width", svgWidth)
.attr("height", svgHeight);
svg.selectAll("circle")
.data(dataset)
.enter()
.append("circle")
.attr("cx", function(d) {
return d[0];
})
.attr("cy", function(d) {
return d[1];
})
.attr("r", 5);
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>
外部数组应该只包含 20 个元素,我发现它创建了 21 个元素,而不是第一个元素只有半径值,没有圆心的坐标值。一些提示会很好理解这个问题。
【问题讨论】:
-
while( xCoord <= 0 | yCoord <= 0 )
标签: javascript arrays d3.js