0

我正在尝试将一些元数据绑定到平行坐标 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 对象中的元素匹配。请注意,headerJSON 中的标头与 CSV 中的标头相同,因此我认为 SQL 类型的连接可能是可能的,尽管我不确定如何。
  • 我只能将元数据绑定到可见轴(因为我的 csv 包含超过 20 个维度,我过去.dimensions(header_disp)只显示一个轴样本),所以每次显示的轴发生变化时都应该重复此操作

综上所述,我有以下两个问题:

  1. 我怎样才能将正确的元数据与其相应的维度相匹配(例如,使用类似于 SQL 连接的东西?)?
  2. 我如何选择并将其应用于所有维度,甚至那些未显示的维度?

感谢您对此的任何帮助!

4

0 回答 0