matplotlib-将图像存储在变量中

我想将生成的图像存储matplotlib在变量中,raw_data以将其用作嵌入式图像。

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')

这些功能都不适合我的用例:

  • 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

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-将图像存储在变量中 的全部内容, 来源链接: utcz.com/qa/401072.html

回到顶部