PyCharm中rpy2调用ggplot2无法弹出绘图窗口求助
解决PyCharm中rpy2+ggplot2无法弹出绘图窗口的问题
我来帮你搞定这个问题——你在PyCharm 2019.2.3的Python控制台运行rpy2调用ggplot2的代码时,绘图窗口无法弹出,但在Kubuntu 14.04终端的Python控制台却能正常显示,大概率是PyCharm的环境配置或R的图形设备设置没跟上,试试下面这些可行方案:
方案1:手动指定R的图形设备
PyCharm的控制台可能没有自动激活R的图形输出设备,你可以在代码里显式调用Linux常用的X11图形后端,修改后的代码如下:
import pandas as pd import rpy2.robjects.lib.ggplot2 as ggplot2 import rpy2.robjects as ro from rpy2.robjects import pandas2ri pandas2ri.activate() from rpy2.robjects.packages import importr base = importr('base') # 显式启动X11图形设备,让R明确输出到独立窗口 ro.r('x11()') measurements = pd.DataFrame({'time': [0,1], 'value': [2,3]}) gp = ggplot2.ggplot(measurements) pp = gp + \ ggplot2.aes_string(x='time', y='value') + \ ggplot2.geom_line() pp.plot()
如果X11不好使,也可以尝试ro.r('gtk()')或者ro.r('qt()'),取决于你的系统支持哪种图形后端。
方案2:给PyCharm控制台配置DISPLAY环境变量
有时候PyCharm的控制台没有继承系统的DISPLAY环境变量,导致R找不到显示目标,你可以手动添加:
- 打开PyCharm,依次进入
File > Settings > Build, Execution, Deployment > Console > Python Console - 找到
Environment variables区域,点击右侧的编辑按钮 - 添加环境变量:
DISPLAY=:0(这是Linux默认的本地显示设备,若使用远程桌面需改成对应的值) - 保存设置后,重启PyCharm的Python控制台再运行代码
方案3:设置R默认使用交互式图形设备
在代码开头添加一行,强制R把X11作为默认绘图设备,后续所有ggplot2绘图都会自动用窗口输出:
ro.r('options(device = "x11")')
方案4:关闭PyCharm内置绘图工具窗口
PyCharm的“在工具窗口显示绘图”选项,可能无法捕获rpy2的R绘图输出,你可以关掉试试:
- 进入
File > Settings > Tools > Python Scientific - 取消勾选
Show plots in toolwindow - 重启控制台后运行代码,绘图会弹出独立窗口
验证建议
如果以上方案都无效,试试在PyCharm自带的终端(不是Python控制台)运行代码:
- 若终端能正常显示,说明问题出在Python控制台的配置上,重点排查方案2和方案4;
- 若终端也不行,可能是系统图形后端配置问题,尝试更新R的相关图形包。
内容的提问来源于stack exchange,提问作者Make42
相关产品推荐
相关产品推荐

