首页 > 解决方案 > 如何通过 matplotlib 获取图形二进制对象?

问题描述

我喜欢使用 matplotlib 来展示科学实验结果,我想将这些图片存储到 MongoDB。
虽然我已经阅读了 matplotlib 官方文档,但我找不到任何方法可以轻松地将类文件对象存储到 GridFS 中。
一个可行的解决方案是将图形保存为 png 文件,然后将此 png 文件上传到 GridFS。还有更简洁的方法吗?

标签: pythonmongodbmatplotlib

解决方案


我解决了这个问题。

def plot_fig(file_name):
    x = np.linspace(0, 10, 10)
    y = np.linspace(0, 10, 10)
    plt.plot(x, y)

    from io import BytesIO
    figfile = BytesIO()
    plt.savefig(figfile, format='png')

    fs = GridFS(db)
    try:
        f = fs.new_file(filename=file_name)
        f.write(figfile.getvalue())
    finally:
        f.close()

推荐阅读