📅  最后修改于: 2023-12-03 15:03:47.806000             🧑  作者: Mango
在远程 VS Code 中使用 Matplotlib 进行数据可视化或绘图时,最常见的问题就是 plt.show() 无法弹出绘图窗口的问题。本文将介绍如何解决该问题。
由于 plt.show() 需要使用图形界面进行操作,因此需要安装 X window 系统。在 Linux 系统上运行以下命令即可安装:
sudo apt-get install -y x11-apps
在本地 VS Code 中打开远程 SSH 连接,需要配置 -X
参数来允许图形界面的传输。例如:
ssh -X <用户名>@<远程主机地址>
Matplotlib 有一个配置文件 matplotlibrc
,其中有一行代码 backend : Agg
,这是导致 plt.show() 无法弹出绘图窗口的原因。我们需要将其改为 backend : TkAgg
,以便使用 Tkinter,一个 Python 的图形界面库。具体步骤如下:
在 Python 中输入以下代码:
import matplotlib as mpl
print(mpl.matplotlib_fname())
即可查看 matplotlibrc
文件的位置。
使用文本编辑器打开 matplotlibrc
文件,并将 backend : Agg
改为 backend : TkAgg
,保存并关闭文件。
完成以上步骤后,在远程 VS Code 中运行 Matplotlib 的程序,即可弹出绘图窗口。
import matplotlib.pyplot as plt
# 设置后端为 TkAgg
plt.switch_backend('TkAgg')
# 绘图
plt.plot([1, 2, 3, 4])
plt.ylabel('some numbers')
# 显示图形界面
plt.show()
以上代码片段示例是在 Python 中修改后端为 TkAgg,并呈现一个简单的绘图图例。注意,plt.switch_backend('TkAgg')
必须在所有其他 Matplotlib 代码之前调用。