matplotlib - store image in variable

后端 未结 2 1496
孤城傲影
孤城傲影 2020-12-05 00:52

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.e         


        
相关标签:
2条回答
  • 2020-12-05 01:22

    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
    
    0 讨论(0)
  • 2020-12-05 01:29

    Complete python 3 version, putting together Paul's answer and metaperture's comment.

    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
    
    0 讨论(0)
提交回复
热议问题