📜  plt .show matplotlib 远程 vscode - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:03:47.806000             🧑  作者: Mango

在远程 VS Code 中使用 plt.show() 和 Matplotlib

在远程 VS Code 中使用 Matplotlib 进行数据可视化或绘图时,最常见的问题就是 plt.show() 无法弹出绘图窗口的问题。本文将介绍如何解决该问题。

1. 安装 X window 系统

由于 plt.show() 需要使用图形界面进行操作,因此需要安装 X window 系统。在 Linux 系统上运行以下命令即可安装:

sudo apt-get install -y x11-apps
2. 配置 SSH

在本地 VS Code 中打开远程 SSH 连接,需要配置 -X 参数来允许图形界面的传输。例如:

ssh -X <用户名>@<远程主机地址>
3. 修改 Matplotlib 配置

Matplotlib 有一个配置文件 matplotlibrc,其中有一行代码 backend : Agg,这是导致 plt.show() 无法弹出绘图窗口的原因。我们需要将其改为 backend : TkAgg,以便使用 Tkinter,一个 Python 的图形界面库。具体步骤如下:

3.1 查看 matplotlibrc 文件的位置

在 Python 中输入以下代码:

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

即可查看 matplotlibrc 文件的位置。

3.2 修改 backend

使用文本编辑器打开 matplotlibrc 文件,并将 backend : Agg 改为 backend : TkAgg,保存并关闭文件。

4. 运行程序

完成以上步骤后,在远程 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 代码之前调用。