使用D3绕过JSON

耶拉尔

我正在D3上进行可视化工作,觉得必须有一种方法可以做我想做的事情。

说我有这样的JSON:

var arr = [
    {
        "name":"John",
        "maxAge": 35,
        "info":[
            {
                "age":31,
                "height":6,
                "weight":155,
                "eyes":"green"
            },
            {
                "age":35,
                "height":6,
                "weight":165,
                "eyes":"green"
            }
        ]
    },
    {
        "name":"Eric",
        "maxAge":30,
        "info":[
            {
                "age":29,
                "height":5,
                "weight":135,
                "eyes":"brown"
            },
            {
                "age":30,
                "height":5,
                "weight":155,
                "eyes":"brown"
            }
        ]
    }
]

假设我正在使用以下内容遍历数据:

var outerDiv = d3.select("body")
    .selectAll("div")
    .data(arr)
    .enter()
    .append("div")
    .attr("class","outerDiv");

为John和Eric创建外部div,然后:

var innerDivs = outerDiv.selectAll("p")
    .data((d) => arr.info)
    .enter()
    .append("p")
    .html("Weight = " + info.weight)
    .attr("class","outerDiv");

遍历每个信息并将其可视化。但是,我的可视化要求1)在遍历“ info”的同时可以访问maxAge,以及2)在info [0]内时可以访问info [1] .height。这些都有可能吗?

吉尔莎

您的两个要求都是可能的。使用d3Selection.each

这是一个演示-

var arr = [
    {
        "name":"John",
        "maxAge": 35,
        "info":[
            {
                "age":31,
                "height":6,
                "weight":155,
                "eyes":"green"
            },
            {
                "age":35,
                "height":6,
                "weight":165,
                "eyes":"green"
            }
        ]
    },
    {
        "name":"Eric",
        "maxAge":30,
        "info":[
            {
                "age":29,
                "height":5,
                "weight":135,
                "eyes":"brown"
            },
            {
                "age":30,
                "height":5,
                "weight":155,
                "eyes":"brown"
            }
        ]
    }
]

var outerDiv = d3.select("body")
    .selectAll("div")
    .data(arr)
    .enter()
    .append("div")
    .attr("class","outerDiv");

var innerDivs;

outerDiv.each(function(d){
  innerDivs = d3.select(this)
    .selectAll("p")
    .data(d.info)
    .enter()
    .append("p")
    .html(function(info,i){    
      var nextInfo = d.info[i+1];    
      if(nextInfo) console.log(JSON.stringify(nextInfo));
      return "Weight = " +info.weight +", MaxAge: "+d.maxAge;
     })
    .attr("class","outerDiv");
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

d3区域图,使用JSON对象

来自分类Dev

使用变量访问D3中的嵌套JSON键

来自分类Dev

使用ScalaJS从JSON创建D3树

来自分类Dev

使用外部JSON文件填充D3图表

来自分类Dev

d3区域图,使用JSON对象

来自分类Dev

使用Python创建D3嵌套JSON数据

来自分类Dev

如何使用d3访问JSON数据?

来自分类Dev

使用d3从json文件中选择特定项目

来自分类Dev

使用ScalaJS从JSON创建D3树

来自分类Dev

使用d3 js在phant中绘制json数据

来自分类Dev

如何使用 D3 导航嵌套的 JSON 对象?

来自分类Dev

使用 d3.nest 实现 D3 树状图 json

来自分类Dev

D3动态JSON键名

来自分类Dev

d3从JSON路径创建svg

来自分类Dev

在D3中访问JSON值

来自分类Dev

json的D3树布局

来自分类Dev

D3动态JSON标签

来自分类Dev

通过javascript/D3加载json

来自分类Dev

D3.js - 如何使用内联 JSON 作为 D3 图表的数据集,而不是 csv/tsv/json 文件

来自分类Dev

如何使用D3 JavaScript遍历JSON文件中的数据

来自分类Dev

使用新的data.json更新d3饼图

来自分类Dev

尝试使用D3 Framework访问JSON文件时出现404错误

来自分类Dev

如何使用嵌套数组对象访问d3 json文件中的值

来自分类Dev

使用REST API / json从Hbase进行D3可视化

来自分类Dev

安装要与topo json和D3一起使用的gdal

来自分类Dev

在D3数据方法中使用变量来提取JSON数据

来自分类Dev

如何在D3强制有向图中选择要使用的JSON文件

来自分类Dev

如何在d3中使用对象打开json文件?

来自分类Dev

如何在D3中使用从WEB-Service接收到的JSON数据?