diff --git a/doc/python/sankey-diagram.md b/doc/python/sankey-diagram.md index 83ac4faded0..a0801aa05b2 100644 --- a/doc/python/sankey-diagram.md +++ b/doc/python/sankey-diagram.md @@ -62,15 +62,23 @@ fig.update_layout(title_text="Basic Sankey Diagram", font_size=10) fig.show() ``` -### More complex Sankey diagram +### More complex Sankey diagram with colored links -```python inputHidden=false outputHidden=false +```python import plotly.graph_objects as go import urllib, json url = 'https://raw.githubusercontent.com/plotly/plotly.js/master/test/image/mocks/sankey_energy.json' response = urllib.request.urlopen(url) data = json.loads(response.read()) + +# override gray link colors with 'source' colors +opacity = 0.4 +# change 'magenta' to its 'rgba' value to add opacity +data['data'][0]['node']['color'] = ['rgba(255,0,255, 0.8)' if color == "magenta" else color for color in data['data'][0]['node']['color']] +data['data'][0]['link']['color'] = [data['data'][0]['node']['color'][src].replace("0.8", str(opacity)) + for src in data['data'][0]['link']['source']] + fig = go.Figure(data=[go.Sankey( valueformat = ".0f", valuesuffix = "TWh", @@ -87,8 +95,9 @@ fig = go.Figure(data=[go.Sankey( source = data['data'][0]['link']['source'], target = data['data'][0]['link']['target'], value = data['data'][0]['link']['value'], - label = data['data'][0]['link']['label'] - ))]) + label = data['data'][0]['link']['label'], + color = data['data'][0]['link']['color'] +))]) fig.update_layout(title_text="Energy forecast for 2050
Source: Department of Energy & Climate Change, Tom Counsell via Mike Bostock", font_size=10)