D3js-使用d3.json从“ JSON数据”输入中绘制折线图

内文·马杜卡·K。

我最近开始研究D3.js,遇到了一些问题。.这是我到目前为止已经尝试的方法:

这是我的JS

    d3.json("../js/sample2.json", function(data) {
    var canvas = d3.select("body").append("svg")
            .attr("width", 500)
            .attr("height", 500)
            .attr("border", "black")

    var group = canvas.append("g")
            .attr("transform", "translate(100,10)")

    var line = d3.svg.line()
            .x(function(d, i) {
                return data[0].position[i];
            })
            .y(function(d, i) {
                return data[1].position[i];
            });

    var line1 = d3.svg.line()
            .x(function(d, i) {
                return data[2].position[i];
            })
            .y(function(d, i) {
                return data[3].position[i];
            });

    var j = 0;
    group.selectAll("path")
            .data(data).enter()
            .append("path")
//    Have to provide where exaclty the line array is ! (line(array)) 
            .attr("d", line(data[j].position))
            .attr("fill", "none")
            .attr("stroke", "green")
            .attr("stroke-width", 3);

    var group2 = group.append("g")
            .attr("transform", "translate(100,10)")
    group2.selectAll("path")
            .data(data).enter()
            .append("path")
//    Have to provide where exaclty the line array is ! (line(array)) 
            .attr("d", line1(data[j].position))
            .attr("fill", "none")
            .attr("stroke", "red")
            .attr("stroke-width", 3);
});

这是我的JSON文件:

   [ {"name": "x1", 
      "position":[40,60,80,100,200]
     },

     {"name": "y1", 
      "position":[70,190,220,160,240]},

     {"name": "x2", 
      "position":[40,60,80,100,200]
     },

     {"name": "y2", 
      "position":[20,90,20,60,40]}
]

我希望从JSON文件检索的数据中显示该行我实际上得到了输出,这是我当前正在接收的输出:在此处输入图片说明

但是问题是,我希望它更具动态性举例来说,如果JSON中有更多数据

JSON可能从x1,y1变为xn,yn ...(类似于上面JSON中的格式)

[ {"name": "x1", 
      "position":[40,60,80,100,200]
     },
 {"name": "y1", 
  "position":[70,190,220,160,240]
  },

 {"name": "x2", 
  "position":[40,60,80,100,200]
 },

 {"name": "y2", 
  "position":[20,90,20,60,40]}
.
.
.
.    


{"name": "xn", 
  "position":[40,60,80,100,200]
 },

 {"name": "yn", 
  "position":[20,90,20,60,40]}]

所以我与此有关的问题是:

  1. 如何使其动态化(即:与JSON中的数据量无关,它应反映在具有所需图形的图形上)
  2. 使用D3.json输入到D3js的JSON数据格式会出现问题吗?(或者D3.json到底需要什么格式,严格吗?)
吉尔莎

让您的json数据结构像这样

[
 [
  {
     "x":40,
     "y":70
  },
  {
     "x":60,
     "y":190
  },
  {
     "x":80,
     "y":220
  },
  {
     "x":100,
     "y":160
  },
  {
     "x":200,
     "y":240
  }
 ],
 [
  {
     "x":40,
     "y":20
  },
  {
     "x":60,
     "y":90
  },
  {
     "x":80,
     "y":20
  },
  {
     "x":100,
     "y":60
  },
  {
     "x":200,
     "y":40
  }
 ]
]

代码

d3.json("data.json", function(data) {
   var canvas = d3.select("body").append("svg")
        .attr("width", 500)
        .attr("height", 500)
        .attr("border", "black")

   var group = canvas.append("g")
        .attr("transform", "translate(100,10)")

   var line = d3.svg.line()
        .x(function(d, i) {
            return d.x;
        })
        .y(function(d, i) {
            return d.y;
        }); 

   group.selectAll("path")
        .data(data).enter()
        .append("path")
        .attr("d", function(d){ return line(d) })
        .attr("fill", "none")
        .attr("stroke", "green")
        .attr("stroke-width", 3);
});

这是创建多折线图的正确方法。无论您从json获得什么数据格式,都可以使用Javascript数组函数将其转换为所需的格式。您也可以使用Underscore.js进行轻松处理。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

D3js-使用d3.json从“ JSON数据”输入中绘制折线图

来自分类Dev

d3中json数据的折线图

来自分类Dev

透视JSON的D3多系列折线图

来自分类Dev

如何使用JSON字符串中的数据填充dimple d3.js折线图?

来自分类Dev

解析D3折线图JSON数据时出错

来自分类Dev

具有JSON数据的D3可重用多折线图

来自分类Dev

如何在d3多折线图中使用json数据而不是tsv文件?

来自分类Dev

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

来自分类Dev

D3JS从数组数据绘制折线图(数据未定义错误)

来自分类Dev

JSON的D3js错误

来自分类Dev

使用d3 + react绘制路径(折线图)

来自分类Dev

在d3js中堆叠多个折线图而不嵌套数据

来自分类Dev

D3中的折线图动态数据更新

来自分类Dev

D3中的折线图动态数据更新

来自分类Dev

D3JS折线图在折线之间的过渡

来自分类Dev

具有JSON日期的D3 v4折线图

来自分类Dev

d3JS:在折线图/面积图上缩小时,绘制大数据集的低密度数据版本

来自分类Dev

无法使用 D3.js 显示此 JSON 结构的折线图?

来自分类Dev

D3js折线图mouseOver

来自分类Dev

D3JS折线图倒排问题

来自分类Dev

D3js折线图配置

来自分类Dev

d3js折线图错误-绘制怪异区域

来自分类Dev

如何在D3中绘制具有复杂数据结构的折线图

来自分类Dev

嵌套JSON数组和D3JS

来自分类Dev

mysql to JSON to D3js no Visual ...“类”标识错误

来自分类Dev

从JSON对象D3JS获取最大值

来自分类Dev

使用D3js,如何从数据库中创建flare.json结构?

来自分类Dev

Chart.js在折线图上绘制两个json数据集

来自分类Dev

Chart.js在折线图上绘制两个json数据集