You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WSL环境下Python3调用Matplotlib绘图无法显示的解决求助

在WSL中显示Matplotlib绘图的解决方案

首先解释你看到的<matplotlib.lines.Line2D object at ...>:这是plt.plot()方法的正常返回值,它代表你创建的折线图形对象,不是错误,无需在意。

下面是两种解决WSL中绘图不显示的方法:

方法一:保存图像到文件(无需图形界面转发)

如果不需要实时弹出窗口查看绘图,直接将图像保存为文件后在Windows中查看:

  1. 修改你的代码,在导入matplotlib后添加后端设置,并新增保存图像的代码:
import matplotlib
matplotlib.use('Agg')  # 使用非交互式后端
import matplotlib.pyplot as plt

x = [1,2,3,4,5]
y = [x**2 for x in x]
plt.plot(x,y)
plt.savefig('my_plot.png')  # 将图像保存为文件
# plt.show()  # 用Agg后端时plt.show()无效,可以注释掉
  1. 运行脚本后,在WSL终端执行以下命令,将图片复制到Windows桌面(替换成你的Windows用户名):
cp my_plot.png /mnt/c/Users/你的用户名/Desktop/

之后直接在Windows桌面打开图片即可。

方法二:配置图形界面转发(实时显示窗口)

如果需要实时弹出绘图窗口,需要配置WSL的X11图形转发:

  1. 在Windows上安装VcXsrv X Server,启动时选择「Multiple windows」,「Start no client」,并勾选「Disable access control」后启动。
  2. 配置WSL的DISPLAY环境变量:
    • 临时生效:在WSL终端执行:
      export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0
      
    • 永久生效:将上述命令添加到~/.bashrc或~/.zshrc文件末尾,然后执行source ~/.bashrc使设置立即生效。
  3. 安装Matplotlib交互式后端的依赖:
    在WSL终端执行:
    sudo apt-get update && sudo apt-get install python3-tk
    
  4. 修改代码,确保使用交互式后端(可选,若默认后端不是TkAgg则添加):
    import matplotlib
    matplotlib.use('TkAgg')  # 指定交互式后端
    import matplotlib.pyplot as plt
    
    x = [1,2,3,4,5]
    y = [x**2 for x in x]
    plt.plot(x,y)
    plt.show()
    

运行脚本后,绘图窗口会在Windows桌面上弹出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 14:15:39