You need to enable JavaScript to run this app. Flask应用中Matplotlib生成的图表无法正常显示问题求助
优惠活动
大模型
产品
解决方案
定价
更多

Flask应用中Matplotlib生成的图表无法正常显示问题求助

问题原因与解决方法

核心问题点

  • 代码中plot_recta函数内调用了plt.show(),该方法依赖GUI环境弹出显示窗口,后端服务无图形界面支持,会阻塞绘图流程,导致后续plt.savefig保存的是空白内容。
  • 未显式指定Matplotlib非交互后端,默认配置可能尝试调用GUI相关接口抛出隐形错误。

修复步骤

  1. 调整Matplotlib后端配置,在导入matplotlib.pyplot之前指定使用非交互的Agg后端,修改导入部分代码如下:
import io
import matplotlib
# 显式指定非交互后端,必须放在导入pyplot之前
matplotlib.use('Agg')
import matplotlib.pyplot as plt
from numpy import *
from flask import Flask, render_template, make_response
  1. 删除plot_recta函数中的plt.show()一行代码,修改后函数如下:
def plot_recta(x, y):
    b1 = beta1(x, y)
    b0 = beta0(x, y)
    pnts_x = linspace(x[0], x[-1], 100)
    pnts_y = b0 + b1 * pnts_x
    plt.plot(pnts_x, pnts_y)
    plt.plot(x, y, "r*")

验证方法

修改完成后重启服务,可先直接访问http://localhost:5000/simple.png确认图片可以正常加载,再访问首页即可正常显示图表。

内容的提问来源于stack exchange,提问作者Leo Zamudio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 03:15:07