Sunday 15 February 2015

python - Connecting flows in matplotlib sankey diagram -



python - Connecting flows in matplotlib sankey diagram -

i using matplotlibs sankey functionality , have problem connecting 2 flows. basically, want connect flow qab,rekup end of flow qzu,rekup (see screenshot).

seems quite easy still haven't figured out how manage this.

here's screenshot: https://www.dropbox.com/s/2satz9ryniy958v/sankey.png?dl=0 here's code:

import numpy np import matplotlib.pyplot plt matplotlib.sankey import sankey fig = plt.figure() ax = fig.add_subplot(1, 1, 1, xticks=[], yticks=[], title="vereinfachtes kraftwerksmodell") sankey = sankey(ax=ax, unit=none) sankey.add(flows=[1.0, -0.3, -0.1, -0.1, -0.5], labels=['p$el$', 'q$ab,vd$', 'p$vl,vd$', 'p$vl,mot$', ''], label='laden', orientations=[0, -1, 1, 1, 0]) sankey.add(flows=[0.5, 0.1, 0.1, -0.1, -0.1, -0.1, -0.1, -0.3], fc='#37c959', label='entladen', labels=['p$mech$', 'q$zu,ex$', 'q$zu,rekup$', 'p$vl,tb$', 'p$vl,gen$', 'q$ab,tb$', 'q$ab,rekup$', 'p$nutz$'], orientations=[0, -1, -1, 1, 1, -1, -1, 0], prior=0, connect=(4, 0)) sankey.add(flows=[-0.1, 0.1], label='rekuperator', #labels=['bla'], orientations=[1,1], prior=1, connect=(2, 0)) diagrams = sankey.finish() diagrams[-1].patch.set_hatch('/') plt.legend(loc='lower right') plt.show()

does have idea?

thanks in advance cord

i think i'm way late, here solution: need specify pathlength first node, , tweak manually match smaller one.

http://i.imgur.com/kah1isl.png

fig = plt.figure() ax = fig.add_subplot(1, 1, 1, xticks=[], yticks=[], title="vereinfachtes kraftwerksmodell") sankey = sankey(ax=ax, unit=none) sankey.add(flows=[1.0, -0.3, -0.1, -0.1, -0.5], pathlengths = [0.5,0.06,0.5,0.5,0.375], labels=['p$el$', 'q$ab,vd$', 'p$vl,vd$', 'p$vl,mot$', ''], label='laden', orientations=[0, -1, 1, 1, 0]) sankey.add(flows=[0.5, 0.1, 0.1, -0.1, -0.1, -0.1, -0.1, -0.3], fc='#37c959', label='entladen', labels=['p$mech$', 'q$zu,ex$', 'q$zu,rekup$', 'p$vl,tb$', 'p$vl,gen$', 'q$ab,tb$', 'q$ab,rekup$', 'p$nutz$'], orientations=[0, -1, -1, 1, 1, -1, -1, 0], prior=0, connect=(4, 0)) sankey.add(flows=[-0.1, 0.1], label='rekuperator', #labels=['bla'], orientations=[1,1], prior=1, connect=(2, 0)) diagrams = sankey.finish() diagrams[-1].patch.set_hatch('/') plt.legend(loc='lower right') plt.show()

python matplotlib sankey-diagram

No comments:

Post a Comment