[PYTHON] matplotlib - 이미지를 변수에 저장
PYTHONmatplotlib - 이미지를 변수에 저장
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')
내 유스 케이스에 맞는 함수는 없다.
해결법
-
==============================
1.cStringIO 나 그와 비슷한 것을 사용해 보셨습니까?
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
-
==============================
2.완성 된 python 3 버전, Paul의 답변과 메타perture의 의견을 정리합니다.
완성 된 python 3 버전, Paul의 답변과 메타perture의 의견을 정리합니다.
import matplotlib.pyplot as plt import io import urllib, base64 plt.plot(range(10)) fig = plt.gcf() buf = io.BytesIO() fig.savefig(buf, format='png') buf.seek(0) string = base64.b64encode(buf.read()) uri = 'data:image/png;base64,' + urllib.parse.quote(string) html = '<img src = "%s"/>' % uri
from https://stackoverflow.com/questions/5314707/matplotlib-store-image-in-variable by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 파이썬 : __getattr __ ()을 구현하는 방법? (0) | 2018.11.02 |
---|---|
[PYTHON] 판다 열 순서를 재 배열하는 방법? (0) | 2018.11.02 |
[PYTHON] "% s"% 형식과 "{0}". format () vs "?"형식 (0) | 2018.11.02 |
[PYTHON] X에서 활성 창 제목 가져 오기 (0) | 2018.11.02 |
[PYTHON] Python Matplotlib로 그림과 그림 결합 (0) | 2018.11.02 |