matplotlib - 将图像存储在变量中 [英] matplotlib - store image in variable

查看:1070
本文介绍了matplotlib - 将图像存储在变量中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想将由matplotlib生成的图像存储在一个变量raw_data中,以将其用作内嵌图像。

  import os 
import sys
os.environ ['MPLCONFIGDIR'] ='/ tmp /'
import matplotlib
matplotlib.use(Agg)
import matplotlib.pyplot (plt.plot)(范围(10,20))

raw_data = plt。 show()

如果raw_data:
uri ='data:image / png; base64,'+ urllib.quote(base64.b64encode(raw_data))
print'< img src =%s/>'%uri
else:
printNo data

#plt.savefig(sys.stdout,format ='png' )

这些函数都不符合我的用例:




  • plt.savefig(sys.stdout,format ='png') - 将它写入标准输出。这确实有帮助..因为我必须将图像嵌入到html文件中。
  • 从命令行执行时,plt.show()/ plt.draw()不执行任何操作


解决方案

您是否试过 cStringIO

  import os 
import sys
import matplotlib
import matplotlib.pyplot as plt
import StringIO
导入urllib,base64

plt.plot(范围(10,20))
fig = plt.gcf()

imgdata = StringIO.StringIO()
fig.savefig(imgdata,format ='png')
imgdata.seek(0)#倒带数据

printContent-type :image / png\\\

uri ='data:image / png; base64,'+ urllib.quote(base64.b64encode(imgdata.buf))
print'< img src = %s/>'%uri


I would like to store the image generated by matplotlib in a variable raw_data to use it as inline image.

import os
import sys
os.environ['MPLCONFIGDIR'] = '/tmp/'
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt

print "Content-type: image/png\n"
plt.plot(range(10, 20))

raw_data = plt.show()

if raw_data:
    uri = 'data:image/png;base64,' + urllib.quote(base64.b64encode(raw_data))
    print '<img src = "%s"/>' % uri
else:
    print "No data"

#plt.savefig(sys.stdout, format='png')

None of the functions suit my use case:

  • plt.savefig(sys.stdout, format='png') - Writes it to stdout. This does help.. as I have to embed the image in a html file.
  • plt.show() / plt.draw() does nothing when executed from command line

解决方案

Have you tried cStringIO or an equivalent?

import os
import sys
import matplotlib
import matplotlib.pyplot as plt
import StringIO
import urllib, base64

plt.plot(range(10, 20))
fig = plt.gcf()

imgdata = StringIO.StringIO()
fig.savefig(imgdata, format='png')
imgdata.seek(0)  # rewind the data

print "Content-type: image/png\n"
uri = 'data:image/png;base64,' + urllib.quote(base64.b64encode(imgdata.buf))
print '<img src = "%s"/>' % uri

这篇关于matplotlib - 将图像存储在变量中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆