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