繁体   English   中英

如何使用d3 parcoords维度

[英]how to use dimensions with d3 parcoords

我是d3的新手,我正在尝试使用http://syntagmatic.github.io/parallel-coordinates/

在这里,您可以看到网站上的简约示例。

<script src="http://d3js.org/d3.v3.min.js"></script>
<script src="d3.parcoords.js"></script>
<link rel="stylesheet" type="text/css" href="d3.parcoords.css">
<div id="example" class="parcoords" style="width:360px;height:150px"></div>

<script>
var data = [
  [0,-0,0,0,0,3 ],
  [1,-1,1,2,1,6 ],
  [2,-2,4,4,0.5,2],
  [3,-3,9,6,0.33,4],
  [4,-4,16,8,0.25,9]
];

var pc = d3.parcoords()("#example")
  .data(data)
  .render()
  .ticks(3)
  .createAxes();
</script>

我想要一些尺寸不被展示,并尝试使用#parcoords.dimensions(尺寸)的不同方法。 你怎么解决这个问题?

我看了一下小提琴格拉特的设置,但看起来并没有像我想象的那样工作。 在那个小提琴中,尺寸的名称已被删除,但尺寸之间的一个或多个线仍然代表原始数据。 这种行为对我来说似乎很奇怪,它可能是一个错误。

无论如何,我已经设置了一个小提琴,使用以下方法预过滤数据:

data.forEach( function (e,j) { 
    var temp ={};
    filteredDimensions.forEach ( function (d,i) {
        temp[d] = e[d]
    })
    filteredData.push(temp)
})

这里有一个工作小提琴

只需添加您.dimensions()调用后.ticks()和前.createAxes()

var pc = d3.parcoords()("#example")
  .data(data)
  .render()
  .ticks(3)
  .dimensions([1,2,4])
  .render()
  .createAxes();

Jsfiddle 在这里

在查看了user1614080的解决方案后,他只是提前过滤数据,这很容易,而且始终可用,但不是您要求的。 我尝试使用他的示例(带有名称),并使用了维度的名称( 这里是 jsFiddle)。 我这样做的方式也适用于命名尺寸。

维度只需要在.render()之后到达某个地方,但我不确定为什么。

编辑 :最后弄清楚为什么这不正确。 更新维度后需要调用.render()这里稍微暗示一下 )。 更新了两个示例以修复轴之间的拐点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM