在D3中访问JSON值
Accessing JSON values in D3
我试图用"正手"/"反手"answers"BH切片"的圆圈填充每个组,但我很难访问这些值。我用"方向"作为键来嵌套元素,所以相关的值最终会影响每个圆的位置和大小。
在某种程度上,它类似于https://github.com/mbostock/d3/wiki/Selections#data矩阵的例子,我猜,但数据结构是不同的?
JSbin的当前代码在这里:http://jsbin.com/gahul/1
我有以下数据:
var JSONdata = [
{
"Direction": "Crosscourt",
"Total": 118,
"Forehand": 75,
"Backhand": 41,
"BH slice": 2
}, {
"Direction": "Down_middle",
"Total": 50,
"Forehand": 34,
"Backhand": 9,
"BH slice": 7
}, {
"Direction": "Down_line",
"Total": 21,
"Forehand": 8,
"Backhand": 11,
"BH slice": 2
}, {
"Direction": "Inside_out",
"Total": 118,
"Forehand": 25,
"Backhand": 5,
"BH slice": 0
}, {
"Direction": "Inside_in",
"Total": 9,
"Forehand": 9,
"Backhand": 0,
"BH slice": 0
},
];
和以下d3代码:
var query1 = d3.nest()
.key(function(d){
return d.Direction;
})
.sortKeys(d3.ascending)
.entries(JSONdata)
var h = 420;
var w = 500;
var svg = d3.select("body")
.append("svg")
.attr("width", w)
.attr("height", h);
var group = svg.selectAll("g")
.data(query1)
.enter()
.append("g")
.attr("class", function(d){ return d.key })
var pop_directions = group.selectAll("circle")
.data(query1)
.enter()
.append("circle")
.attr("r", 30 )
.attr("cx", 100)
新对象的值在一个只有一个元素的数组中,您必须对其进行寻址,例如:
d.values[0].Forehand
提供了前面的值,而您可以通过
访问键值。d.key
请参阅http://jsbin.com/hakamoga/1/edit获取一个使用正手值作为半径和标题的简单示例。
相关文章:
- 访问JSON对象内部的数组元素
- 访问json数组中的对象
- 访问嵌套JSON对象的键,其中键是动态的
- 如何使用javascript从JSON访问单个对象
- json访问数据未正确显示
- jQuery获取JSON访问结果
- 使用 AngularJS 从没有键值的 JSON 访问数据值
- JSON 访问变量字段
- JSON - 访问 JSON 数组并分配变量
- 如何向每个动态生成的元素添加一个事件,并仅在JAVASCRIPT中从json访问数据
- Node.js&JSON:访问对象属性
- 使用d3.json()访问嵌套JSON
- JSON访问循环错误
- 我的.json文件无法从d3.json访问
- 使用jQuery (Ajax, JSON)访问PHP数组
- 无法从json访问数据
- JSON -访问字段名为'*'星号
- 使用json访问数组中的元素
- 不能从JSON访问对象
- Json访问错误