[Python] Understanding x and y coordinates in Plotly's Sankey Chart

Discussão em 'Python' iniciado por Stack, Março 13, 2025.

  1. Stack

    Stack Membro Participativo

    I was trying to create a custom Sankey chart based on my defined x and y coordinates. However it isn't turning out as I am expecting.

    I was expecting that the nodes would stick to the defined x values but it does not seem to be the case Consider the below case.

    import plotly.graph_objects as go

    fig = go.Figure(go.Sankey(
    arrangement='snap',
    node=dict(
    label=['A', 'B', 'C', 'D', 'E', 'F'],
    x=[0.01, 0.01, 0.01, 0.5, 0.99, 0.99],
    y=[0.01, 0.40, 0.5, 0.1, 0.01, 0.3],
    pad=10,
    ),
    link=dict(
    source=[0, 1, 2, 3, 3],
    target=[3, 3, 3, 4, 5],
    value=[40, 10, 50, 30, 70]
    )
    ))

    fig.show()


    I arrived at the y values by taking the cumulative percentage till the previous node for the plots made on a specific X axis [e.g. A = 0.01; B = 40/(40+10+50); C = (40+10)/(40+10+50)] Ideally as per the definitions I would expect the first node in the diagram to be A the second to be B and third to be C. Something like below

    [​IMG]

    However it doesn't quite work like it. This is how it ends up looking instead, the first node is A second is C and third is B. C [​IMG]

    Can you please help me understand what I'm supposedly doing wrong?

    Continue reading...

Compartilhe esta Página