matplotlib 在Flask应用程序中显示图形时,图形相互重叠[duplicate]

b4lqfgs4  于 2022-11-30  发布在  其他
关注(0)|答案(1)|浏览(139)

此问题在此处已有答案

Why does Matplotlib savefig images overlap?(1个答案)
Stop seaborn plotting multiple figures on top of one another(3个答案)
matplotlib.pyplot will not forget previous plots - how can I flush/refresh?(2个答案)
3天前关闭。
我想在一个网页上显示多个图表,用 flask 构建。当我分别运行它们时,图表工作正常,但当我试图在同一页上显示它们时,它们重叠。
main.py

@main.route('/filetypebarchart', methods=["GET"])
def filetypebarchart():
    fig1 =plt.figure("1")

    df = pd.read_csv('./export_dataframe.csv') 
 
    df.value_counts()
    fig1 = df.type.value_counts().plot(kind = 'barh').get_figure()
    fig1.savefig('./project/filetypebarchart.png')

    return send_file("filetypebarchart.png",mimetype='img/png')

@main.route('/filetypesum', methods=["GET"])
def filetypesum():
    fig2 = plt.figure("2")

    df = pd.read_csv('./export_dataframe.csv')  
    
    fig2 = sns.barplot(data=df, x="type", y="size", estimator="sum", palette="pastel")
    fig2.figure.savefig('./project/filetypesum.png')

    return send_file("filetypesum.png",mimetype='img/png')

超文本标记语言代码

<div> 
  <img src="/filetypebarchart" alt="Chart" height="auto" width="100%">
  <br><br>
  <img src="/filetypesum" alt="Chart" height="auto" width="100%">
</div>

结局

oknwwptz

oknwwptz1#

哦,与此同时,我自己发现了。我需要添加以下行来结束情节。

plt.close(fig1)

所以现在看起来像这样。

@main.route('/filetypebarchart', methods=["GET"])
def filetypebarchart():
    fig1 =plt.figure("1")

    df = pd.read_csv('./export_dataframe.csv') 
 
    df.value_counts()
    fig1 = df.type.value_counts().plot(kind = 'barh').get_figure()
    fig1.savefig('./project/filetypebarchart.png')

    plt.close(fig1)

    return send_file("filetypebarchart.png",mimetype='img/png')

相关问题