Javascript d3.js data.columns不';不存在?

Javascript d3.js data.columns不';不存在?,javascript,d3.js,Javascript,D3.js,我试图重新创建一个简单的示例,如下所示: 下面是我的代码的一个简单版本(请注意,数据有不同的标签,但结构相同): var数据=[ {句点:'t1',fmc1:+10,fmc2:9,fmc3:6,fmc4:5,fmc5:2}, {句点:'t2',fmc1:+11,fmc2:8,fmc3:6,fmc4:4,fmc5:3}, {句号:'t3',fmc1:+12,fmc2:10,fmc3:7,fmc4:5,fmc5:3}, ]; var groups=d3.map(数据,函数(d){return(d

我试图重新创建一个简单的示例,如下所示:

下面是我的代码的一个简单版本(请注意,数据有不同的标签,但结构相同):

var数据=[
{句点:'t1',fmc1:+10,fmc2:9,fmc3:6,fmc4:5,fmc5:2},
{句点:'t2',fmc1:+11,fmc2:8,fmc3:6,fmc4:4,fmc5:3},
{句号:'t3',fmc1:+12,fmc2:10,fmc3:7,fmc4:5,fmc5:3},
];
var groups=d3.map(数据,函数(d){return(d.period)}).keys()
var子组=data.columns.slice(1);
var stackedData=d3.stack()
.密钥(子组)
(数据);
var yScale=d3.scaleLinear()
.domain([0,80])
.范围([高度,0]);
var xScale=d3.scaleBand()
.域(组)
.范围([0,宽度])
.填充([2]);
var colorScale=d3.scaleOrdinal()
.域(子组)
“范围范围(”,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#b8cce4“,#95b3d7“,#4f81b9“,#366092“,#003366”];
graphGroup.append(“g”)
.全选(“g”)
.数据(stackedData)
.enter().append(“g”)
.attr(“fill”,函数(d){return colorScale(d.key);})
.selectAll(“rect”)
.data(函数(d){return d;})
.enter().append(“rect”)
.attr(“x”,函数(d){返回xScale(d.data.period);})
.attr(“y”,函数(d){return yScale(d[1]);})
.attr(“高度”,函数(d){返回yScale(d[0])-yScale(d[1]);})
.attr(“宽度”,xScale.bandwidth())

数据
是一个数组。JavaScript数组可以被赋予属性,但这并不是一个好的实践,因为您正在“偷偷”将内容放入对象中

在本例中,
data.columns
由CSV读取器设置,此处不使用。以下值相当于
数据的值。列

Object.keys(data[0])