I'd like to add some annotations to Plotly Sankey diagram.
And I want to draw them right over the blocks of sankey nodes (with the same x-position)
but couldn't find the way to do it, or even to find the X coordinates of nodes. (Think it would be better to get them and not to add manually, because number of sankey levels could change)
If we'll take this basic example, I want to add "A" "B" and "C" labels over corresponding nodes
import plotly.graph_objects as go
fig = go.Figure(data=[go.Sankey(
node = dict(
pad = 15,
thickness = 20,
line = dict(color = "black", width = 0.5),
label = ["A1", "A2", "B1", "B2", "C1", "C2"],
color = "blue"
),
link = dict(
source = [0, 1, 0, 2, 3, 3], # indices correspond to labels, eg A1, A2, A1, B1, ...
target = [2, 3, 3, 4, 4, 5],
value = [8, 4, 2, 8, 4, 2]
))])
fig.update_layout(title_text="Basic Sankey Diagram", font_size=10)
fig.show()