解决 Windows10 下 wsl 使用 matplotlib.pyplot 画图没反应的问题

在用 wsl 做 AI 实验写 PCA 和 k-means 的时候想用 pyplot 把数据可视化一下,但是发现

1
2
3
import matplotlib.pyplot as plt
# other code
plt.show()

plt.show() 之后并没有图像被画出来,是因为 wsl 上 matplotlib 默认的后端是 Agg,这是一个哑后端,即 plt.show() 之后什么都不会发生,需要安装一个 XWindows 协议的终端应用,我安装了 VcXsrv,安装时都使用默认设置。

然后修改 wsl 的 ~/.bashrc ,添加两行:

1
2
export DISPLAY=:0.0
export LIBGL_ALWAYS_INDIRECT=1

还需要保证安装好 tk 库,若没有安装则用命令 sudo apt-get install python3-tk 安装即可。

打开 VcXsrv 和 wsl,再运行开头的代码,发现可以画出图像了。