14

是否有用于生成桑基图的 Python 库?

我已经看过这个Sankey 图表应用程序和库列表,但它们都不是 Python 中的。

4

4 回答 4

9

显然 matplotlib 1.1 现在可以做到这一点。代码和示例输出在这里

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

在此处输入图像描述

于 2011-10-13T17:27:40.587 回答
2

我在“Python 图形可视化”上进行​​了谷歌搜索,发现了一些东西。有几个库具有“弹簧”行为,软件可以平衡图形并使其漂亮;他们为你做了很多工作。但是他们绘制带有节点和边的图表,与桑基图完全不同。

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

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

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

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

另请参阅 StackOverflow 关于在 Python 中绘制矢量图的讨论:svg图表使用python

该页面使我:http://cairographics.org/看起来非常有用。

您链接的博客有一篇关于自动创建桑基图的文章:

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

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

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

于 2009-10-25T08:00:11.197 回答
2

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

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

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

于 2018-03-29T11:14:56.943 回答
1

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

于 2020-01-17T14:23:11.727 回答