23👍
✅
Try using StringIO
to avoid writing any file-like object to disk.
import matplotlib.pyplot as plt
import StringIO
from matplotlib import numpy as np
x = np.arange(0,np.pi*3,.1)
y = np.sin(x)
fig = plt.figure()
plt.plot(x,y)
imgdata = StringIO.StringIO()
fig.savefig(imgdata, format='svg')
imgdata.seek(0) # rewind the data
svg_dta = imgdata.buf # this is svg data
file('test.htm', 'w').write(svg_dta) # test it
👤Paul
7👍
Here is python3 version
import matplotlib.pyplot as plt
import numpy as np
import io
f = io.BytesIO()
a = np.random.rand(10)
plt.bar(range(len(a)), a)
plt.savefig(f, format = "svg")
print(f.getvalue()) # svg string
- Django annotate and count: how to filter the ones to include in count
- Does changing a django models related_name attribute require a south migration?
- The default "delete selected" admin action in Django
0👍
Based on abasar’s answer, I propose the following snippet:
from io import StringIO
import matplotlib.pyplot as plt
def plot_to_svg() -> str:
"""
Saves the last plot made using ``matplotlib.pyplot`` to a SVG string.
Returns:
The corresponding SVG string.
"""
s = StringIO()
plt.savefig(s, format="svg")
plt.close() # https://stackoverflow.com/a/18718162/14851404
return s.getvalue()
a = [10, 20, 5]
plt.bar(range(len(a)), a)
svg = plot_to_svg()
print(svg)
- Django database delete specific number of entries
- Docker Django 404 for web static files, but fine for admin static files
- Django template tag: How to send next_page in {url auth_logout}?
- ProgrammingError: relation "django_session" does not exist
Source:stackexchange.com