WSL环境下Matplotlib代码无图像输出问题咨询
解决WSL下Jupyter Notebook中Matplotlib图像不显示的问题
嘿,我来帮你搞定这个图像不显示的问题!你代码里的一个小设置直接导致了图像没法在Jupyter里正常显示,咱们一步步来调整:
问题根源
你代码里的第3行 matplotlib.use('Agg') 是关键问题!Agg 是Matplotlib的非交互式后端,它的作用是生成图像文件(比如保存成PNG),完全不会在Jupyter Notebook这种交互式环境里显示图像——这就是为什么你只看到了"Hello World",却看不到画好的图。
解决方案
1. 移除Agg后端设置
直接删掉第3行 matplotlib.use('Agg'),Jupyter Notebook会自动适配适合的交互式后端(默认是inline,会把图像直接嵌入到Notebook的单元格里)。
2. 可选:手动指定inline后端(确保兼容性)
如果删掉之后还是有显示问题,可以在导入matplotlib后加上Jupyter的魔法命令 %matplotlib inline,强制让图像嵌入显示。
修改后的完整代码
from __future__ import print_function import matplotlib import matplotlib.pyplot as plt import numpy as np import math # 加上这个魔法命令,确保图像在Notebook里正常显示 %matplotlib inline print("hello world!") SIZE=4 img = np.zeros((SIZE,SIZE)) for n in range (0, SIZE): for m in range (0,SIZE): if (n & 0x1) ^ (m & 0x1): img[n, m] = 255 plt.matshow(img);
额外注意(WSL环境专属)
如果之后你想让图像弹出独立窗口显示(而不是嵌入Notebook),需要在WSL里配置X服务器(比如安装VcXsrv或Xming),然后设置环境变量 export DISPLAY=:0,再把后端改成TkAgg或者Qt5Agg。不过对于入门练习来说,用inline嵌入显示是最省心的方式。
内容的提问来源于stack exchange,提问作者qqffx
相关产品推荐
相关产品推荐

