VScode使用remote-ssh实现服务器上绘图可视化
引言
有时候在服务器上绘图会受到结果不显示的困扰,无论是R还是python都会有类似的情况,那么有什么比较方便的应用呢?
本文的前提是你使用VScode并以安装好python等环境,可以日常在服务器工作。
使用的方案是X协议,详细介绍见[4]. 具体使用软件是MacOS的Quartz或Windows的Xming, Linux的xauth, VScode的插件remote X11和remote X11(ssh).
效果展示
过程
可视化方案
大概需要三个步骤:
- 安装本地X端 (X client)
- 安装服务器X端 (X Server)
- 安装和配置VScode插件
安装本地X端 (X client)
MacOS
MacOS用的应用是Quartz, 可以直接从官网[5]下载,也可以从brew下载。
一般情况都推荐brew, 但是我Ventura 13.0.1 (22A400) 系统的Apple M1不可用,所以尽量建议官网下载安装包,安装之后记得重启一下。
1 | brew install xquartz |
Windows
Windows用的应用是Xming[6], 具体应用和配置见[1,2,3].
安装服务器X端 (X Server)
主要需要安装的是xauth, 建议一并安装xclock方便测试。
如果是centOS可以使用yum install -y xauth xclock
.
安装和配置VScode插件
需要的插件有两个:
- remote X11
- remote X11 (ssh)
已有免密登录的情况下,在Remote Explorer 中点击设置,在Host下面增加三句转发指令
1 | Host 172.18.187.21 |
如果没有免密登录,可以通过下面的代码[7]:
1 | ssh-keygen |
结论
当需要不断改图或者用matplotlib以外的东西画图时,还是有个可视化窗口方便一些。
篇外
其他方案
其实保存图看也不是不可以,也挺方便。
R
先提供两种R不用可视化的方案:
自带:
1 | # 1. 画板 |
然后是R可视化方案:
主要是配合VScode使用httpgd包:
1 | httpgd::hgd() |
甚至可以通过修改根目录的.Rprofile
文件来自动使用:
1 | if (interactive() && Sys.getenv("TERM_PROGRAM") == "vscode") { |
python
matplotlib绘图
1 | import matplotlib.pyplot as plt |
借助matplotlib绘图
1 | import matplotlib |
(其实大概也有自己的绘图保存方式比如ig.plot(g, "social_network.pdf")
)
引用
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Comment