我正在使用d3 parcoords库。当我修改在平行坐标图中绘制的数据并重新加载图表时,轴的比例不会刷新。
我尝试调用.autoscale()
,但如果我在之前调用它.render()
,它没有任何效果,如果我在之后调用它.render()
,则不再绘制多段线。
$("#example").html(""); //to make sure "ghost" axes are removed
parcoords = d3.parcoords()("#example")
.data(parsedData)
.createAxes()
.brushMode("1D-axes")
.reorderable()//;
.detectDimensions()
.dimensions(dimensionObj)
.autoscale() //no visible effect if placed here
.render()
.updateAxes();
不确定这是否相关(尽管问题是同时开始的),我开始指定尺寸的顺序。为此,我不使用包含轴 ( dimensionArray
) 的数组,而是使用包含编号的“索引”键的 JS 对象dimensionObj
,如下所示:
//dimensionArray = ["axis1", "axis2", "axis3", "axis4"]; //orderless array
//Default axes to display with predefined ordering
dimensionObj = {
"axis1": {index:0},
"axis2": {index:1},
"axis3": {index:2},
"axis4": {index:3}
}
出于说明目的,以下屏幕截图显示了如何在顶部图像上正确设置比例,但在第二个(更新的)图表上,一些新的折线将在第 1 和第 3 轴上变为 0,但比例未更新所以线路超出范围。
重新加载图表时是否有一种简单的方法来刷新轴刻度?是否有可能使用 JS 对象.dimensions()
与底层缩放功能产生一些冲突?