Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
D3.js 气泡图用JSON代替CSV_D3.js - Fatal编程技术网

D3.js 气泡图用JSON代替CSV

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

我用的是气泡图,它从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({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文件。