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 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 Can you please help me understand what I'm supposedly doing wrong? Continue reading...