Я хочу отобразить изображение, созданное matplotlib в django. У меня есть рабочее решение, но вы хотите сделать это, не записывая на диск. Вот код:отображение графика matplotlib в djangoview
def __get_img_data1(): # not working - returns a white blank image
fig = plt.figure()
imgdata = StringIO.StringIO()
fig.savefig(imgdata, format='png')
imgdata.seek(0)
content = imgdata.getvalue()
imgdata.close()
return content
def __get_img_data2(): # not working - returns a broken image
fig = plt.figure()
imgdata = StringIO.StringIO()
fig.savefig(imgdata, format='png')
imgdata.seek(0)
from PIL import Image
return Image.open(imgdata)
def __get_img_data3(): # working!
img_file = NamedTemporaryFile(delete=False)
plt.savefig(img_file.name, dpi=600)
img_data = open(img_file.name + '.png', 'rb').read()
os.remove(img_file.name)
os.remove(img_file.name + '.png')
return img_data
Я принял 3 подхода, описанные выше. Как заставить его работать без записи на диск? Предполагается работать в соответствии с документацией: http://matplotlib.org/faq/howto_faq.html
но оно отображает пустое белое изображение.