cle*_*ksx 27 javascript json d3.js
有一些例子可以从d3.js中的外部json文件中获取数据.但是这些样本没有显示json,所以我真的想看看它是如何工作的.
我有这个json文件test.json,它看起来像
[
{"a":"-1.14","b":"4.14"},
{"a":"-0.13","b":"1.38"},
{"a":"-4.19","b":"1.43"},
{"a":"-0.21","b":"3.34"}
]
Run Code Online (Sandbox Code Playgroud)
我想用这些数据制作一个散点图.
在d3.js脚本中.到目前为止我添加了.
var width = 400;
var height = 400;
var x = d3.scale.linear()
.domain ([-5, 5])
.range([0, width]);
var y = d3.scale.linear()
.domain ([-5, 5])
.range([0, height]);
var chart = d3.select("body").append("svg")
.attr("width", width+70)
.attr("height", height+70)
.attr("class", chart)
.append("g")
.attr("transform", "translate(30, 30)");
chart.selectAll("xline")
.data(x.ticks(11))
.enter().append("line")
.attr("x1", x)
.attr("x2", x)
.attr("y1", 0)
.attr("y2", height)
.style("stroke", "#ccc");
chart.selectAll("yline")
.data(y.ticks(11))
.enter().append("line")
.attr("y1", y)
.attr("y2", y)
.attr("x1", 0)
.attr("x2", width)
.style("stroke", "#ccc");
Run Code Online (Sandbox Code Playgroud)
如果我使用这个数据集:
var dataset = [ [-1, -3], [2, 4], [3, -4], [-3, 1]];
Run Code Online (Sandbox Code Playgroud)
我添加了这个,它工作正常.
chart.selectAll("scatter-dots")
.data(dataset)
.enter().append("circle")
.attr("cx", function (d) { return x(d[0]); } )
.attr("cy", function (d) { return y(d[1]); } )
.attr("r", 10)
.style("opacity", 0.6);
Run Code Online (Sandbox Code Playgroud)
我想知道如果我使用外部json文件,我应该如何更改调用数据的这部分.我真的很感激有人可以教我这个!非常感谢.
pax*_*man 28
尝试这样的事情
d3.json("data.js", function(data) {
alert(data.length)
});
Run Code Online (Sandbox Code Playgroud)
data.js或data.json或者你想要调用它的任何东西,只要它有js内容就是你的json文件.另请尝试阅读:https://github.com/mbostock/d3/wiki/Requests.所有使用json数据的代码都将从json回调函数中调用.
小智 15
如果您对这些调用更熟悉,也可以使用Jquery JSON调用.或者您甚至可以使用引用分配给JSON的变量的脚本标记,如下所示:
<script src="us-pres.json" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)
us-pres.json的开头是这样的:
var dataset = {"state":"US",...
Run Code Online (Sandbox Code Playgroud)
只要你将JSON变成一个变量(集合),d3并不真正关心你是如何做到的.一旦它在那里,你只需使用d3 .data(dataset)
调用分配它.
归档时间: |
|
查看次数: |
70783 次 |
最近记录: |