Sankey diagrams are a neat way to display, e.g., heat and energy fluxes. With [login to view URL], there exists a library to easily create such visualizations [1].
The objective of this project is to bring Sankey diagrams to the web and make them interactive. The library mpld3 [2] can be used to turn the matplotlib diagrams into d3js (svg) graphics.
We have tested mpld3 with sankey diagrams and it works out of the box, see attachment. There are, however, some aspects that are not optimal and should be improved / investigated within this project.
Scope:
- Setup a simple Python webserver that makes available the sankey diagram given in [1] via [2]. Use whatever framework you prefer, the simpler the better (why not bottle? [3]).
- Draw the Sankey diagram on a website and add input fields for the 19 different fluxes; prepopulate the fields with the values given on the script
- If the fields are changed and a "redraw" button is pressed, the Sankey diagram is updated
- Optimize the look and feel:
- Remove axes lines
- Optimize font size as well as font weight (original diagram from [1] has some text written in bold face)
- The Sankey diagram should use the full width of the browser window. If the browser windows is resized, however, the diagram should be redrawn. The font size should not change if the user zooms
References:
[1] [login to view URL]
[2] [login to view URL]
[3] [login to view URL]
Hi
I have rich in web development. I build Python website using Django and Flesk framework, also built Graph using D3.js/SVG.
If you give me the chance to do this, I'll do my best and make you satisfy.
I hope to discuss more detail and forward.
Thanks