我正在尝试创建一个分组图表,可以打开和关闭其系列-这是一个有效的演示

https://bl.ocks.org/andrew-reid/64a6c1892d1893009d2b99b8abee75a7

我正在尝试通过json输入使它工作-但我遇到了错误。

http://jsfiddle.net/0ht35rpb/231/

我本质上是想从数据中获取键数组。

var键= data.columns.slice(1);
^以前是csv的地方

所以需要获得这个钥匙

var keys = [
"AA",
"BB"
]


从数据

var data = [{
"State": "CA",
"AA": 100,
"BB": 200
},
{
"State": "TX",
"AA": 454,
"BB": 344
}];

最佳答案

由于没有columns创建的d3.json属性,因此可以使用d3.keys获取密钥:

var keys = d3.keys(data[0]).slice(1);


这是一个演示:



var data = [{
  "State": "CA",
  "AA": 100,
  "BB": 200
}, {
  "State": "TX",
  "AA": 454,
  "BB": 344
}];

var keys = d3.keys(data[0]).slice(1);

console.log(keys)

<script src="https://d3js.org/d3.v4.min.js"></script>





由于键的顺序是不确定的,因此更安全的方法是删除该slice并改用filter



var data = [{
  "State": "CA",
  "AA": 100,
  "BB": 200
}, {
  "State": "TX",
  "AA": 454,
  "BB": 344
}];


var keys = d3.keys(data[0]).filter(function(d) {
  return d != "State";
});
console.log(keys)

<script src="https://d3js.org/d3.v4.min.js"></script>

关于javascript - d3从数据获取键数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46800497/

10-12 15:18