Диаграммы Санки в Python - PullRequest
       45

Диаграммы Санки в Python

12 голосов
/ 25 октября 2009

Существует ли библиотека Python для генерации диаграмм Санки ?

Я видел этот список приложений и библиотек диаграмм Sankey , но ни один из них не представлен на Python.

Ответы [ 3 ]

7 голосов
/ 13 октября 2011

Очевидно, что теперь это может сделать matplotlib 1.1. Код и пример выходных данных здесь .

Ниже приведен скриншот, демонстрирующий, на что он способен.

enter image description here

2 голосов
/ 25 октября 2009

Я сделал поиск в Google по «Визуализации графа Python» и нашел кое-что. Есть несколько библиотек, которые имеют «пружинное» поведение, когда программное обеспечение уравновешивает график и делает его красивым; они делают большую часть работы за вас. Но они рисуют графические диаграммы, с узлами и ребрами, совсем не так, как диаграммы Санки.

Поиск Google "Python sankey" не дал никаких полезных результатов.

Я сделал несколько поисков в Google по «векторной графике Python» и нашел этот очень многообещающий результат:

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

С помощью Things вы, очевидно, рисуете базовые фигуры в Inkscape (бесплатной программе векторного редактирования), а затем пишете Python для масштабирования, вращения и т. Д. Фигур для создания изображения или анимации. Должна быть возможность написать код на Python, чтобы стрелки Санки отскакивали от своих источников, поворачивались вверх, вниз и так далее.

См. Также обсуждение StackOverflow по рисованию векторных диаграмм в Python: SVG-диаграммы с использованием Python

Эта страница привела меня к: http://cairographics.org/, что выглядит очень полезным.

В блоге, на который вы ссылаетесь, есть статья о автоматическом создании диаграммы Санки:

* +1026 ** ** 1028 тысячи двадцать-семь * -diagrams.com / Sankey-диаграммы являются-направленными-взвешенным-графики / * 1 029 *

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

Я не нашел для вас готового решения, но нашел некоторые детали, которые потенциально могли бы быть использованы в решении. Удачи.

1 голос
/ 29 марта 2018

В моей исследовательской группе мы используем диаграммы Санки из Python внутри Записные книжки Jupyter , используя проекты с открытым исходным кодом (примечание: я являюсь разработчиком этих проектов) для встраивания Sankey на основе D3 / SVG в выход.

  • floWeaver обеспечивает дополнительную структуру агрегации данных, которая часто используется для построения диаграммы Санки,
  • ipysankeywidget просто рисует диаграмму Санки.

Оба они основаны на библиотеке d3, d3-sankey -gram , которая добавляет некоторые функции к стандартному плагину d3 sankey (циклы, несколько типов потоков, больше контроля над макетом).

...