我开始学习 D3.js 并想使用强制布局编写一个简单的应用程序。目标是创建 3 个浮动的节点,可以使用鼠标拖动。这是我使用文档所取得的进展,但是我看到的只是窗口左上角的一个黑色小圆圈(我假设所有三个都重叠在那里)。我对每一步都发表了评论——至少我认为他们正在这样做。
<!doctype html>
<html>
<head>
<title>Simple Force Layout</title>
<script type="text/javascript" src="http://mbostock.github.com/d3/d3.js?1.29.1"></script>
<script type="text/javascript" src="http://mbostock.github.com/d3/d3.geom.js?1.29.1"></script>
<script type="text/javascript" src="http://mbostock.github.com/d3/d3.layout.js?1.29.1"></script>
</head>
<body>
<div id="canvas"></div>
<script type="text/javascript">
var conf = {
canvasWidth: 600,
canvasHeight: 400
}
var nodes = [
{ 'name': 'Node 1' },
{ 'name': 'Node 2' },
{ 'name': 'Node 3' }
];
// Add nodes to force layout and start it
var force = d3.layout.force()
.nodes(nodes)
.size([conf.canvasWidth, conf.canvasHeight])
.start();
// Create an svg element
var svg = d3.select("#canvas")
.append("svg:svg")
.attr("width", conf.canvasWidth)
.attr("height", conf.canvasHeight);
// Create a circle for each node
var circle = svg.append("svg:g").selectAll("circle")
.data(force.nodes())
.enter().append("svg:circle")
.attr("r", 6)
.call(force.drag);
</script>
</body>
</html>
我的问题:
- 我错过了什么?我还需要做什么才能让节点浮动并可以拖动?
- 我想要混合或圆形和矩形节点(基于节点的某些属性)。我该怎么做呢?
当我运行应用程序时,我在 Firebug 中看到以下错误:
“网络错误:404 未找到 - http://mbostock.github.com/d3/d3.geom.js?1.29.1 ” d3.geom.js?1.29.1
“网络错误:404 未找到 - http://mbostock.github.com/d3/d3.layout.js?1.29.1 ”
为什么是这样?我尝试的一些强制布局示例也给出了这个错误,但它们似乎工作正常!