2014-03-12 47 views
3

我使用D3.js and its sankey plugin为我的数据集生成sankey图表。如何使用曲线节点端点创建Sankey图?

长话短说,我做了(得到不同的分支广度)进行一些修改,以插件的源,目前有一些看起来像:

enter image description here

现在我试图让分支曲线下来(及以上),有点像this image from wikipedia减去整个环回事情):

enter image description here

我的问题是,这是可能的?那么,我知道它是可能的,它只是一个兔子洞的大小。我之前从未使用过SVG,这是我第一次进入D3,所以我不太清楚自己想要做什么。

另外,是否有另一个图书馆,会产生一个像我要去的图?我遇到了this python library,看起来它可能做我想做的事,但我从来没有写过一行Python,如果我能避免它,宁可不要(至少今天)。

回答

1

是的,这是可能的(并且相对容易实现)与d3.js。

下面是一个例子:

http://bl.ocks.org/cfergus/3921009

你很可能需要调整,以满足您的需要的代码,但是这基本上是你的问题的解决方案。

在此随机桑基发电机看看:

http://bl.ocks.org/cfergus/3956043

一段时间后,你会得到与循环图。

+0

当你发布这个,我非常兴奋,但它似乎并不像我想做的那样。这说明了“环回”是如何工作的,但正如我的问题所述,我不在寻找循环。我正在寻找如何使节点在结尾处向上和向外弯曲(根据它们相对于每个Wiki图像的“out”节点的位置来指向上或下)。 –

+0

在附注中,我惊讶地发现这些演示在OSX/Chrome上不适用于我。我不得不切换到Safari来让它们运行 –

+1

Chrome上的错误是“拒绝执行来自'https://raw.github.com/cfergus/d3-plugins/master/sankey/sankey.js'的脚本,因为它的MIME类型('text/plain')不可执行,并且启用严格的MIME类型检查。“为了链接到github中的其他脚本,我认为你需要使用相对链接,而不是链接到“原始”文件。 – AmeliaBR