CentOS 7系统下R调用plot函数报错找不到X11 fonts问题求助
解决方案
- 第一步:安装系统层面缺失的X11字体依赖(需root权限执行)
yum install -y libX11-common libXfont xorg-x11-fonts-* xorg-x11-font-utils # 执行完后更新系统字体缓存 fc-cache -fv
如果是通过SSH远程连接服务器运行R,需要在连接时添加-X参数开启X11转发,命令格式为ssh -X 用户名@服务器IP,同时确保本地设备运行了X服务(Windows可使用Xming、MobaXterm自带X服务,macOS可使用XQuartz)。
- 第二步:在R会话中配置X11字体参数
启动R后执行以下代码:
# 配置X11字体匹配规则 options(X11fonts = c("-*-helvetica-*-*--%d-*", "-*-courier-*-*--%d-*", "-*-times-*-*--%d-*")) # 指定默认X11字体为已存在的sans字体 X11.options(font = "sans")
执行完成后直接运行plot(1,1)测试是否恢复正常。
- 第三步:临时替代方案(无需修改系统配置)
如果只需要临时绘图,可以直接使用Cairo渲染设备替代默认X11设备,启动R后执行:
options(device = cairo) # 或者手动调用cairoX11设备 cairoX11() plot(1,1)
- 第四步:持久化配置(可选)
如果需要每次启动R都自动加载配置,将上述R参数写入用户R配置文件:
echo 'options(X11fonts = c("-*-helvetica-*-*--%d-*", "-*-courier-*-*--%d-*", "-*-times-*-*--%d-*"))' >> ~/.Rprofile echo 'X11.options(font = "sans")' >> ~/.Rprofile
内容的提问来源于stack exchange,提问作者Vic
相关产品推荐
相关产品推荐

