Javascript d3热图列标题为yaxis
我有这样一个数据集:Javascript d3热图列标题为yaxis,javascript,d3.js,pivot,Javascript,D3.js,Pivot,我有这样一个数据集: CT, CA, GA, TX, Year, Month 1, 1, 2, 4, 2016, 03 2, 1, 3, 5, 2016, 03 state, count, year, month CT, 1, 2016, 03 “状态”列下的数字对应于出现的次数。 我将数据加载到d3中,但如何将数据重新组织为4列,如下所示: CT, CA, GA, TX, Year, Month 1, 1, 2, 4, 2016, 03 2, 1, 3, 5, 2016, 03 stat
CT, CA, GA, TX, Year, Month
1, 1, 2, 4, 2016, 03
2, 1, 3, 5, 2016, 03
state, count, year, month
CT, 1, 2016, 03
“状态”列下的数字对应于出现的次数。
我将数据加载到d3中,但如何将数据重新组织为4列,如下所示:
CT, CA, GA, TX, Year, Month
1, 1, 2, 4, 2016, 03
2, 1, 3, 5, 2016, 03
state, count, year, month
CT, 1, 2016, 03
以下是我到目前为止得到的信息:
d3.csv("states.csv", function(error, Data){
Data.forEach(function(d){
d.CT = +d.CT;
d.CA = +d.CA;
d.GA = +d.GA;
d.TX = +d.TX;
d.Year = +d.Year;
d.month = +d.month;
});
如果我正确理解了所需的输出数组,则可以将
forEach
和for…in
组合起来创建它:
var csv=`CT、CA、GA、TX、年、月
1,1,2,4,2016,03
2,1,3,5,2016,03`;
var数据=d3.csvParse(csv);
var newData=[];
data.forEach(函数(d){
for(变量键在d中){
如果(键!=“年”&键!=“月”){
newData.push({
国家:关键,
计数:d[键],
年份:d.年份,
月份:d.月份
})
}
}
});
console.log(newData)代码>
谢谢!我加载了数据并检查了日志,它在控制台中显示了一个空数组。当我试图显示newData[0]时,它还表示它未定义。在.push函数中是否需要执行一些不同的操作?嗯,我必须查看确切的代码。使用代码和CSV设置Plunker或Blockbuilder。d3.CSV
是异步的。把console.log放在callback里面。顺便问一下,有没有办法让“count”、“year”、“month”变成数字而不是引号?好的,我解决了它,我只是在d.year前面加了“+”使它成为一个数字