首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用d3小和弦的尺寸

如何使用d3小和弦的尺寸
EN

Stack Overflow用户
提问于 2013-11-25 18:53:53
回答 2查看 1.8K关注 0票数 1

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

在这里,您可以看到来自网站的极简的例子。

代码语言:javascript
复制
<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(维度)显示和尝试不同的方法。你怎么解决这个问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-26 07:00:14

我看了一下吉拉特的小提琴装置,但看上去并没有像我想的那样工作。在这个小提琴中,维度的名称已经被删除,但是维度之间的链接或行仍然代表原始数据。这种行为在我看来很奇怪,可能是个错误。

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

代码语言:javascript
复制
data.forEach( function (e,j) { 
    var temp ={};
    filteredDimensions.forEach ( function (d,i) {
        temp[d] = e[d]
    })
    filteredData.push(temp)
})

用一把工作的小提琴这里

票数 2
EN

Stack Overflow用户

发布于 2013-11-25 19:16:24

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

代码语言:javascript
复制
var pc = d3.parcoords()("#example")
  .data(data)
  .render()
  .ticks(3)
  .dimensions([1,2,4])
  .render()
  .createAxes();

Jsfiddle 这里

在研究了user1614080的解决方案后,他只是提前过滤数据,这很容易,而且总是可用的,但不是您所要求的。我尝试使用他的示例(带有名称),只使用维度的名称(jsFiddle 这里)。我的方式,它的工作与命名的尺寸也很好。

尺寸只需要在.render()之后的某个地方,但我不知道为什么。

编辑:终于弄明白了为什么这不正确。需要在更新维度之后调用.render() (稍微提到这里)。两个示例都更新以修复轴之间的拐点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20200928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档