[Python] Plotly: How to set node positions in a Sankey Diagram?

Discussão em 'Python' iniciado por Stack, Junho 23, 2025.

  1. Stack

    Stack Membro Participativo

    The sample data is as follows:

    unique_list = ['home0', 'page_a0', 'page_b0', 'page_a1', 'page_b1',
    'page_c1', 'page_b2', 'page_a2', 'page_c2', 'page_c3']
    sources = [0, 0, 1, 2, 2, 3, 3, 4, 4, 7, 6]
    targets = [3, 4, 4, 3, 5, 6, 8, 7, 8, 9, 9]
    values = [2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2]


    Using the sample code from the documentation

    fig = go.Figure(data=[go.Sankey(
    node = dict(
    pad = 15,
    thickness = 20,
    line = dict(color = "black", width = 0.5),
    label = unique_list,
    color = "blue"
    ),
    link = dict(
    source = sources,
    target = targets,
    value = values
    ))])

    fig.show()


    This outputs the following sankey diagram

    [​IMG]

    However, I would like to get all the values which end in the same number in the same vertical column, just like how the leftmost column has all of it's nodes ending with a 0. I see in the docs that it is possible to move the node positions, however I was wondering if there was a cleaner way to do it other than manually inputting x and y values. Any help appreciated.

    Continue reading...

Compartilhe esta Página