一、基本的桑基图
import plotly.graph_objects as go
df = pd.DataFrame({'label':["A1", "A2", "B1", "B2", "C1", "C2"],
'source':[0, 1, 0, 2, 3, 3],
'target':[2, 3, 3, 4, 4, 5],
'value':[8, 4, 2, 8, 4, 2]})
source = df.source
target = df.target
value = df.value
label = df.label
node = dict(
pad=15,
thickness=20,
line=dict(color="black", width=0.5),
label=label,
color="blue"
)
link = dict(
source=source,
target=target,
value=value
)
fig = go.Figure(data=[go.Sankey(node=node, link=link)])
fig.update_layout(title_text="Bacis Sankey Diagram", font_size=10)
fig.show()

二、进阶桑基图