Python中的Sankey图

时间:2009-10-25 05:51:12

标签: python graph visualization diagram sankey-diagram

是否有用于生成Sankey diagrams的Python库?

我见过这个list of Sankey diagram applications and libraries,但没有一个是Python。

4 个答案:

答案 0 :(得分:7)

显然matplotlib 1.1现在可以做到这一点。 Code and sample output is here

下面是一个屏幕截图,展示了它可以做些什么。

enter image description here

答案 1 :(得分:2)

我在“Python图形可视化”上进行​​了谷歌搜索并找到了一些东西。有几个库具有“弹簧”行为,软件可以平衡图形并使其漂亮;他们为你做了很多工作。但是他们用节点和边绘制图表图,就像Sankey图一样。

谷歌搜索“Python sankey”没有产生任何有用的结果。

我在“Python矢量图形”上进行了一些谷歌搜索,发现了这个非常有希望的结果:

http://pypi.python.org/pypi/Things

使用Things,显然你在Inkscape(一个免费的矢量编辑程序)中绘制基本形状,然后你编写Python来缩放,旋转等形状以生成图像或动画。应该可以编写Python代码来自动使Sankey箭头远离它们的来源,向上,向下,无论如何。

另请参阅StackOverflow在Python中绘制矢量图的讨论: svg diagrams using python

该页面引导我: http://cairographics.org/看起来很有用。

您链接的博客上有关于自动创建Sankey图表的文章:

http://www.sankey-diagrams.com/sankey-diagrams-are-directed-weighted-graphs/

http://www.svgopen.org/2003/papers/RenderingGraphs/index.html

我没有为您找到一个交钥匙解决方案,但我找到了一些可能在解决方案中使用的部件。祝你好运。

答案 2 :(得分:0)

在我的研究小组中,我们在Jupyter notebooks内使用Python中的Sankey图,使用开源项目(注意:我是这些项目的开发人员)在输出中嵌入基于D3 / SVG的Sankey。

  • floWeaver为绘制Sankey图时经常涉及的数据聚合提供了更多结构,
  • ipysankeywidget只是绘制了Sankey图。

这两个都基于d3库d3-sankey-diagram,它为标准d3 sankey插件添加了一些功能(循环,多种流类型,对布局的更多控制)。

答案 3 :(得分:0)

您可以使用散点图中的sankey图。 https://plot.ly/python/sankey-diagram/