并排图D3.js
我是D3新手,请耐心点 我试图在d3.js中构建一个并排图。我在尝试在“g”(组)中添加“rect”(矩形svg)时遇到了一些困难。我不确定json数据的格式是否不正确。或者如果我错过了一些基本的步骤 Json对象=数据并排图D3.js,d3.js,side-by-side,D3.js,Side By Side,我是D3新手,请耐心点 我试图在d3.js中构建一个并排图。我在尝试在“g”(组)中添加“rect”(矩形svg)时遇到了一些困难。我不确定json数据的格式是否不正确。或者如果我错过了一些基本的步骤 Json对象=数据 var data = [ { dontknow: 3, neutral: 0, optimistic: 62, pessimistic: 15, veryoptimistic: 14, verypessimistic: 6, year: 2013
var data = [
{
dontknow: 3,
neutral: 0,
optimistic: 62,
pessimistic: 15,
veryoptimistic: 14,
verypessimistic: 6,
year: 2013
},
{
dontknow: 10,
neutral: 4,
optimistic: 42,
pessimistic: 55,
veryoptimistic: 64,
verypessimistic: 5,
year: 2013
}
]
我的代码如下所示:
var svg = d3.select("#graph5")
.append("svg")
.attr("width", w)
.attr("height", h);
//Create groups
var g = svg.selectAll('g')
.data(data)
.enter()
.append('g');
//Add rectangles to each g
var rect = g.selectAll("rect")
.data(function(d){ return d })
.enter()
.append("rect")
.attr('width', function(d){ d.year });
SVG和“g”元素似乎创建正确,正确的数据与“g”关联,但最后的rect调用似乎不起作用
有什么想法吗
谢谢看起来对象键引起了问题。 通过使用内置的“d3.values(d)”函数,我能够创建RECT 下面是代码(注意第二行的区别):
var rect = g.selectAll("rect")
.data(function(d){ return d3.values(d) })
.enter()
.append("rect")
.attr('width', function(d,i){ console.log(d); return d });