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

WSL环境下调用plt.show()后Matplotlib无绘图显示问题排查

解决WSL下Matplotlib plt.show()无图像显示的问题

1. 检查并切换Matplotlib后端

WSL终端无图形界面,Matplotlib默认后端可能为Agg(仅支持保存图片,不支持实时显示)。先验证当前后端:

import matplotlib as mpl
print(mpl.get_backend())

若输出为Agg,按以下步骤调整:

  • 安装Tkinter依赖(WSL Ubuntu环境):
sudo apt-get install python3-tk
  • 修改代码,指定交互式后端:
import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt

x = [1,2,3]
y = [0,1,2]

plt.plot(x,y)
plt.show()

2. 利用VS Code的图形转发功能

若使用VS Code开发:

  • 确保安装Remote - WSL扩展
  • 在VS Code中打开脚本文件,点击右上角运行按钮执行,VS Code会自动处理WSL的图形输出转发,无需额外配置。

3. 配置WSL的X服务器转发(终端运行场景)

WSL本身无图形输出能力,需借助Windows端X服务器实现显示:

  • 在Windows上安装X服务器软件(如VcXsrv、Xming)
  • 启动X服务器,开启“允许来自网络的连接”权限(注意临时关闭相关防火墙限制)
  • 在WSL终端中设置环境变量:
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0

设置完成后再运行Python脚本,图形会转发到Windows的X服务器窗口显示。

4. 临时保存图片验证代码逻辑

若仅需确认代码功能正常,可跳过显示环节直接保存图片:

import matplotlib.pyplot as plt

x = [1,2,3]
y = [0,1,2]

plt.plot(x,y)
plt.savefig('test_plot.png')

运行后查看当前目录下的test_plot.png,若图片正常生成,说明代码逻辑无问题,仅显示环节存在配置缺失。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 10:27:12