Python中的Sankey图

2024-05-19 18:49:05 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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


Tags: andoflibrarieslistdiagramsankeyapplicationsdiagrams
3条回答

我在谷歌上搜索了“Python图形可视化”,发现了一些东西。有几个具有“spring”行为的库,在这些库中,软件平衡了一个图形并使其更漂亮;它们为您做了很多工作。但是他们画的是有节点和边的图表,不像Sankey图表。

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

我在Google上搜索了“Python vector graphics”,发现了一个非常有前途的结果:

http://pypi.python.org/pypi/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

我没有为您找到一个交钥匙解决方案,但我确实找到了一些可能用于解决方案的部分。祝你好运。

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

  • floWeaver为数据聚合提供了更多的结构,而数据聚合通常涉及到绘制Sankey图
  • ipysankeywidget只需绘制Sankey图。

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

显然matplotlib 1.1现在可以这样做了。Code and sample output is here

下面是一个演示它能做什么的截图。

enter image description here

相关问题 更多 >