如何通过将标题更改为类别并将所有值更改为一列来读取多列CSV



我想在d3.js中创建一个多折线图,数据是csv格式的,组织如下:

¦Date      ¦ Cat A¦ Cat B¦ Cat C¦  
¦:---------¦:----:¦:----:¦-----:¦  
¦2019-12-01¦2     ¦6     ¦9     ¦  
¦2018-11-02¦4     ¦4     ¦20    ¦ 

如何读取要排列成三列的数据:

¦Date      ¦ Category¦ value ¦  
¦:---------¦:-------:¦------:¦  
¦2019-12-01¦CAT A    ¦2      ¦  
¦2018-11-02¦CAT A    ¦4      ¦  
¦2019-12-01¦CAT B    ¦6      ¦  
¦2018-11-02¦CAT B    ¦9      ¦  

请注意,我想忽略其中一列(CAT C(

通常在D3中,导入扁平数据,然后相应地对其进行分组或嵌套。这意味着(据我所知(做相反事情的工具并不那么自然。在这种情况下,使用香草Javascript:可能是简单易懂的

const data = [
{ Date: '2019-12-01', 'A' : 2, 'B' : 6, 'C' : 9  }, 
{ Date: '2018-11-02', 'A' : 4, 'B' : 4, 'C' : 20 }
];

console.log(data)

result = [];

data.forEach(row => {
let a = (({ Date, A, B, C }) => ({ Date, A}))(row);
result.push(a)
let b = (({ Date, A, B, C }) => ({ Date, B}))(row);
result.push(b)
});
console.log(result);

相关内容

最新更新