hypnomaki
hypnomaki

Reputation: 662

Python plotly sankey export broken

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.

Upvotes: 2

Views: 1307

Answers (1)

hypnomaki
hypnomaki

Reputation: 662

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(...)

Upvotes: 2

Related Questions