matplotlib - 将图像存储在变量中 [英] matplotlib - store image in variable
本文介绍了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屋!
查看全文