D3.js 气泡图用JSON代替CSV
我用的是气泡图,它从csv文件中获取输入,有没有办法用JSON替代 以下是问题url: 问题代码:D3.js 气泡图用JSON代替CSV,d3.js,D3.js,我用的是气泡图,它从csv文件中获取输入,有没有办法用JSON替代 以下是问题url: 问题代码: d3.csv(flare.csv, function(d) { //console.log(d); d.value = +d.value; d.seq = +d.seq; if (d.value) return d; }, function(error, classes) { if (error) throw error; var root = d3.hierarchy
d3.csv(flare.csv, function(d) {
//console.log(d);
d.value = +d.value;
d.seq = +d.seq;
if (d.value) return d;
}, function(error, classes) {
if (error) throw error;
var root = d3.hierarchy({children: classes})
.sum(function(d) { return d.value; })
.each(function(d) {
if (id = d.data.id) {
var id,seq, i = id.lastIndexOf(".");
d.id = id;//console.log(i + " " + id);
d.package = id.slice(0, i);//console.log(d.package);
d.class = id.slice(i + 1);
d.seq = d.data.seq;
}
});
var node = svg.selectAll(".node")
.data(pack(root).leaves())
.enter().append("g")
.attr("class", "node")
.attr("transform", function(d) {
if(d.seq==1){
d.x = d.x - 100;
d.y = d.y + 20;
return "translate(" + d.x + "," + d.y + ")";
}else{
d.x = d.x + 500;
d.y = d.y + 20;
return "translate(" + d.x + "," + d.y + ")";
} });
node.append("circle")
.attr("id", function(d) { return d.id; })
.attr("r", function(d) { d.r = parseInt(d.r)-5; return d.r; })
.attr("onclick",function(d) { return "demo('" +d.id + "',"+ d.seq+","+ (d.x+d.r+111)+","+ (d.y+100-30)+");"; })
.style("fill", function(d) { //console.log(d.seq);
if(d.seq==1){
return "url(#gradient1)";
}else{
return "#773F9B";
}
});
node.append("clipPath")
.attr("id", function(d) { return "clip-" + d.id; })
.append("use")
.attr("xlink:href", function(d) { return "#" + d.id; });
node.append("div")
.attr("id","tooltip")
.attr("style","width:100px;height:10px;background-color:gray;z-index:1000");
});
示例csv:
id,value,seq
demo11,100,1
demo12,200,1
demo13,300,1
demo14,400,1
demo15,500,1
demo16,600,1
demo17,600,1
demo21,50,2
demo22,100,2
demo23,150,2
demo24,200,2
demo25,250,2
demo26,300,2
demo27,350,2
简单的回答是:是的 答案很长:要将数据从csv文件更改为json文件,不仅仅是将
d3.csv
更改为d3.json
。当然,这是必要的,正如@RobertLongson在文章中所说的那样。但是,除此之外,您还必须了解d3.csv
如何使用您的csv创建对象数组,因为您需要创建模仿该数组的JSON
因此,给定您的CSV,这就是d3.CSV
创建对象数组的方式:
var data=d3.csvParse(d3.select(“#csv”).text());
console.log(JSON.stringify(数据))
pre{
显示:无;
}
id,value,seq
Demo11100,1
Demo12200,1
人口13300,1
人口14400,1
人口15500,1
人口16600,1
人口17600,1
demo21,50,2
Demo22100,2
人口23150,2
Demo24200,2
人口25250,2
人口26300,2
Demo27350,2
使用d3.json而不是d3.csv,并进行相应调整。快速的“csv到json”搜索将显示大量结果,您可以在其中输入csv并生成json文件。