Javascript 使用D3js并行集动态添加或删除维度

Javascript 使用D3js并行集动态添加或删除维度,javascript,d3.js,Javascript,D3.js,我正在尝试动态地更改平行集图表的维度,正如本文前面所问的 我正在使用Jason Davies创建的可重用图表: 我使用以下代码创建图表: var chart = d3.parsets() .dimensions(["Survived", "Sex", "Age", "Class"]); var vis = d3.select("#vis").append("svg") .attr("width", chart.width()) .attr("height", ch

我正在尝试动态地更改平行集图表的维度,正如本文前面所问的

我正在使用Jason Davies创建的可重用图表:

我使用以下代码创建图表:

var chart = d3.parsets()
      .dimensions(["Survived", "Sex", "Age", "Class"]);

var vis = d3.select("#vis").append("svg")
    .attr("width", chart.width())
    .attr("height", chart.height());

d3.csv("titanic.csv", function(error, csv) {
  vis.datum(csv).call(chart);
});
我已经创建了一个按钮,单击该按钮时应调用函数更改,该更改应将维度更改为[Surved,Sex,Class]

职能:

function change() {
    vis.call(chart.dimensions(["Survived", "Sex", "Class"]));
}
调用函数时,我得到错误Uncaught TypeError:无法读取第90行未定义的属性'hasOwnProperty',该属性位于可重用图表中的updateDimensions函数内


任何人都可以解决这个问题,或者我应该使用变通方法来解决这个问题,创建一个具有新维度的新svg对象,并删除user1386906在前面问题的注释中提到的旧svg对象?

有没有一种方法可以使并行集采用json中数据实体的不同值 我用了一些随机数发生器

 svg.datum(data)
      .call(chart
        .value(function(d, i) {
            var v1, v2, v3;
            v1 = d["Valu"];
            v2 = d["Val"];enter code here
            v3 = d["Value"];
            console.log(v1);
            console.log(v2);
            console.log(v3);
            var x = Math.floor((Math.random() * 10) + 1);
            if (x < 5) {
                return v2;
            } else {
                return v3;
            }

        })
        .mapLevel(levelMap)
        .dimensions(arrayOfDimensions)
        //dimensions to be displayed by chart. (i.e "Cost Item", "Location" etc)
    );
具有不同的大小,因此连接它们的功能区在源节点和目标节点之间具有不同的大小

nodeP        node Parallel to nodeP
]             ]
]