我正在尝试将一些元数据绑定到平行坐标 D3 实现中的维度。
目前,绑定到 parcoords 的唯一数据来自带有标题和折线信息的简单 .CSV。例如mydata.csv
:
Header1 Header2 Header3 ... Header_n
1.2 100 1997 ...
1.8 120 1993
1.5 140 1991
现在我还想使用存储在 JSON 对象中的一些元数据(例如,描述轴内容、数据单位等的短句),通过将其绑定到每个现有维度。例如metadata
:
metadata = [
{
"sentence": "header1 represents foo",
"unit": "[m]",
"header": "header1",
},
{
"sentence": "header2 represents bar",
"unit": "[s]",
"header": "header2",
}
]
到目前为止,我已经提出了以下解决方法,但它(至少)有两个不足之处:
// Add metadata to visible dimensions
myElementd3 = d3.selectAll(".dimension");
myElementd3[0].forEach(function(d,i) {
d["sentence"] = metadata[i]["sentence"];
d["unit"] = metadata[i]["unit"];
});
- 元数据与轴不正确匹配,因为我不确定如何将绑定的 csv 数据与元数据 JSON 对象中的元素匹配。请注意,
header
JSON 中的标头与 CSV 中的标头相同,因此我认为 SQL 类型的连接可能是可能的,尽管我不确定如何。 - 我只能将元数据绑定到可见轴(因为我的 csv 包含超过 20 个维度,我过去
.dimensions(header_disp)
只显示一个轴样本),所以每次显示的轴发生变化时都应该重复此操作
综上所述,我有以下两个问题:
- 我怎样才能将正确的元数据与其相应的维度相匹配(例如,使用类似于 SQL 连接的东西?)?
- 我如何选择并将其应用于所有维度,甚至那些未显示的维度?
感谢您对此的任何帮助!