我想在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);