Python matplotlib图表快速转换为base64字符串表示或Flask中图表的其他服务方法

Python matplotlib图表快速转换为base64字符串表示或Flask中图表的其他服务方法,python,reactjs,matplotlib,flask,base64,Python,Reactjs,Matplotlib,Flask,Base64,这里是我将matplotlib图表转换为base64字符串表示的游乐场,我的项目的目标是为Flask用python创建的图表提供服务,并将它们作为纹理发送。问题是100个图表的转换需要10秒以上,这对于用户与React GUI和Flask API的交互来说太多了。我的简单时间戳日志显示主函数plt.savefig太慢(每次迭代0.2秒)。我正在寻找加速这段代码的方法,或者更确切地说,用另一个解决方案替换当前的解决方案 import numpy as np import datetime data

这里是我将matplotlib图表转换为base64字符串表示的游乐场,我的项目的目标是为Flask用python创建的图表提供服务,并将它们作为纹理发送。问题是100个图表的转换需要10秒以上,这对于用户与React GUI和Flask API的交互来说太多了。我的简单时间戳日志显示主函数
plt.savefig
太慢(每次迭代0.2秒)。我正在寻找加速这段代码的方法,或者更确切地说,用另一个解决方案替换当前的解决方案

import numpy as np
import datetime
data = np.random.rand(20, 100)-0.5

list_base64 = []
s = io.BytesIO()

for i in range(data.shape[1]):
    ct = datetime.datetime.now();print(f"current time: {i} 1", ct)
    if i==0:
        ct0=ct
    ct = datetime.datetime.now();print(f"current time: {i} 2", ct)

    plt.plot(data[:,i])
    ct = datetime.datetime.now();print(f"current time: {i} 3", ct)

    plt.savefig(s, format='jpg') # adding bbox_inches="tight" increases computation time twice
    ct = datetime.datetime.now();print(f"current time: {i} 4", ct)
    
    plt.close()
    ct = datetime.datetime.now();print(f"current time: {i} 5", ct)

    cconverted_chart = base64.b64encode(s.getvalue()).decode("utf-8").replace("\n", "")    
    ct = datetime.datetime.now();print(f"current time: {i} 6", ct)

    list_base64.append(ss) 
    ct = datetime.datetime.now();print(f"current time: {i} 7", ct)
print('start time:', ct0)