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)