javascript - d3.nest 添加额外变量

标签 javascript d3.js nvd3.js

我只想在下面的数据中添加两个新变量,即slopeintersect。 data.csv 文件仅包含列出的列 - LevelsXYSize。我想在下面的数据中添加上面提到的两个新变量。

数据:


    [
          {
            "key": "Level1",
            "values": [
              {
                "x": 118,
                "y": 106,
                "size": 1.113207547
              },
              {
                "x": 111,
                "y": 137,
                "size": 0.810218978
              },
              {
                "x": 144,
                "y": 195,
                "size": 0.738461538
              },
              {
                "x": 116,
                "y": 129,
                "size": 0.899224806
              },
              {
                "x": 117,
                "y": 119,
                "size": 0.983193277
              },
              {
                "x": 145,
                "y": 122,
                "size": 1.18852459
              }
            ],
             "slope": 0.52289599949494,
            "intercept": 0.2795214697252959
          },
          {
            "key": "Level2",
            "values": [
              {
                "x": 172,
                "y": 193,
                "size": 0.89119171
              },
              {
                "x": 138,
                "y": 114,
                "size": 1.210526316
              },
              {
                "x": 106,
                "y": 189,
                "size": 0.560846561
              },
              {
                "x": 123,
                "y": 141,
                "size": 0.872340426
              },
              {
                "x": 129,
                "y": 110,
                "size": 1.172727273
              },
              {
                "x": 162,
                "y": 198,
                "size": 0.818181818
              }
            ],
             "slope": 0.52289599949494,
            "intercept": 0.2795214697252959
          },
          {
            "key": "Level3",
            "values": [
              {
                "x": 191,
                "y": 104,
                "size": 1.836538462
              },
              {
                "x": 177,
                "y": 186,
                "size": 0.951612903
              },
              {
                "x": 106,
                "y": 140,
                "size": 0.757142857
              },
              {
                "x": 131,
                "y": 161,
                "size": 0.813664596
              },
              {
                "x": 111,
                "y": 128,
                "size": 0.8671875
              },
              {
                "x": 149,
                "y": 122,
                "size": 1.221311475
              },
              {
                "x": 200,
                "y": 126,
                "size": 1.587301587
              }
            ],
             "slope": 0.52289599949494,
            "intercept": 0.2795214697252959
          }
        ]

尝试使用以下功能:


    d3.csv("data.csv", function(data) {

                    data.forEach(function(d) {
                        d.x = +d.x
                        d.y = +d.y
                        d.size = +d.size
                    })

                    //var type = ['Basic Phone', 'Featured Phone', 'Smart Phone']

                    var nest = d3.nest()
                                .key(function(d) {return d.type;})
                                .rollup(function(v) {return v.map(function(d) {delete d.type; return d; d.slope = Math.random(), d.intersent = Math.random()})})
                                .entries(data);

                   d3.select('body').append('pre')
                   .text(JSON.stringify(nest, null, '  '));
                })  

最佳答案

function(d) {delete d.type; return d; d.slope = Math.random(), d.intersent = Math.random()}

相当于

function(d) {delete d.type; return d;}

return 之后的内容不会被执行。尝试一下

function(d) {delete d.type; d.slope = Math.random(), d.intersent = Math.random(); return d; }

关于javascript - d3.nest 添加额外变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19833322/

相关文章:

javascript - 防止 NVD3 图表轴出现负值

javascript - NVD3.js y轴和tooltip精度不同

javascript - nvd3 作为 Angular 服务

javascript - 指定 `document.body` 作为 material-ui Tooltip 的容器元素

javascript - 使用 jQuery 检测元素上的触摸滑动

javascript - 样式表、图像和 javascript 未在 rails4 中的 heroku 服务器上加载

javascript - 输出数组变量javascript

javascript - 如何在没有列表的情况下在react-native中显示JSON数据?

javascript - Controller 内部的回调函数在 ng-options 之后完成

d3.js - d3js : make new parent data descend into child nodes