Save image as png or svg

Hi all,

the question is trivial, but cannot solve it alone. What I would like to achieve is to save in the same path, and at the same time, the html and a png image of the plot.

For instance, with this small piece of code:

data = [go.Scatter(x=[1, 2, 3], y=[3, 2, 6])]
plotly.offline.plot(data, filename='/tmp/my-plot', image='svg')

I would like to auto-open the html (correctly done) and saving my-plot.svg in the /tmp directory but silently. At the moment, when running the code, the browser is asking me where to save the svg image.

Is it possible?

Thanks

Two possible issues:

  • I think this could be a browser setting. For example, see these instructions on firefox settings. Using chromium doesnโ€™t ask me, for example, it just downloads the file.

  • Secondly, note that the arg is image_filename; currently filename is setting the name of the .html to save, not the image. See the plotly.offline reference here.

That said, I havenโ€™t been able to get the files to save anywhere other than the browser download path. That said, you could import copyfile (or just move) from shutil after itโ€™s downloaded? For example:

import os
import plotly
import plotly.graph_objs as go
import time
from shutil import copyfile

img_name = 'my-plot'
dload = os.path.expanduser('~/Downloads')
save_dir = '/tmp'

data = [go.Scatter(x=[1, 2, 3], y=[3, 2, 6])]

plotly.offline.plot(data, image_filename=img_name, image='svg')

### might need to wait for plot to download before copying
time.sleep(1)

copyfile('{}/{}.svg'.format(dload, img_name),
         '{}/{}.svg'.format(save_dir, img_name))

This is the canonical documentation page for this issue: https://plotly.com/python/static-image-export/

Hi Nicola,

I have a question regarding reading an SVG image file and using it as a subplot in a plot. I searched a lot for this, but all I see is about writing the plot as an SVG file? Can you please provide me with a link or a suggestion for my case?