Python plotly sankey export broken

Viewed 423

I have a python sankey chart which works well when exporting the html but looks completely broken when exporting it to other file formats

import plotly.graph_objects as go

fig = go.Figure(data=[go.Sankey(
    node = dict(label = data["label"]),
    link = dict(source = data["source"],target = data["target"],value = data["value"])
)])

fig.write_image("sankey.svg")
fig.write_image("sankey.eps")
fig.write_image("sankey.png")
fig.write_html("sankey.html")

HTML Screenshot enter image description here

PNG Export (SVG, EPS differ a bit but also look broken) enter image description here

I'm using python 3.8.5 with the kaleido 0.0.3 engine. Additionally, I've tried Orca 1.2.1 but got the same results.

1 Answers

The answer actually is very easy. Tough most of the charts can figure out the required size on their own, the sankey chart obviously can't. So basically you just have to set dimensions for all exports on sankey charts (yes even for vector graphics like eps and svg).

Also worth mentioning is that a minimum size is required. While my example now looks satisfying with 1920x1080, a size of 1280x720 looks broken even with vector-graphics.

fig = go.Figure(...)
fig.update_layout(width=1920, height=1080)
fig.write_image(...)
Related