Coming soon: We’re working on a brand new, revamped Community experience. Want to receive updates? Sign up now!

0 votes
I would like to download matplotlib figures I have created in a notebook to use them in communications. How can I do this. When I use savefig, I cannot find the resulting file anywhere.

This is a company installation so I do not have terminal access to the server's file system, so I need a way to download the figure or save them to  folder I can access from DataIKU.

I noticed I can create static insights from matplotlib figures using dataIKU API, but these static insights cannot be downloaded either as far as I can see.
by
reopened by

2 Answers

0 votes
Best answer

Hi,

To detail the solution provided by my coworker, here a more detailed example:

1° Create a file system folder in the flow, lets call it "plots"

2° in your jupyter notebook, adapt the following code:

import dataiku
import numpy as np
import matplotlib.pyplot as plt
import io
from dataiku.core.managed_folder import Folder

x1 = np.linspace(0.0, 5.0)
x2 = np.linspace(0.0, 2.0)

y1 = np.cos(2 * np.pi * x1) * np.exp(-x1)
y2 = np.cos(2 * np.pi * x2)

plt.subplot(2, 1, 1)
plt.plot(x1, y1, 'o-')
plt.title('A tale of 2 subplots')
plt.ylabel('Damped oscillation')

plt.subplot(2, 1, 2)
plt.plot(x2, y2, '.-')
plt.xlabel('time (s)')
plt.ylabel('Undamped')

#plt.show()
bs = io.BytesIO()
plt.savefig(bs, format="png")
folder = Folder("plots")
folder.upload_stream("fig.png", bs.getvalue())

3° Come back to the flow, open the "plots" manager folder, fig.png should be present in it.

 

Cheers,

 

Mayeul

R&D

by
selected by
works like a charm. Thanks.
0 votes

Hi, 

You can create a Folder in the flow and store your figures in it. Then you can download them easily. The API to manipulate Folder is here: https://doc.dataiku.com/dss/latest/python-api/managed_folders.html

Cheers,

Du Phan

R&D

by
1,337 questions
1,362 answers
1,556 comments
11,912 users

©Dataiku 2012-2018 - Privacy Policy