设置options(bitmapType="cairo")后RStudio崩溃,ggplot透明效果异常
问题描述
环境:Ubuntu 20.04,R 4.2.2,RStudio 2022.07.2
运行带透明效果的ggplot代码:
ggplot(as.data.frame(rowData(rpdata)))+geom_density(aes(x=length, fill=status), alpha=0.5)
收到警告:
Warning message: In grid.Call.graphics(C_polygon, x$x, x$y, index) : semi-transparency is not supported on this device: reported only once per page
图表无透明效果。尝试安装Cairo包并设置options(bitmapType="cairo")后,RStudio直接崩溃。目前使用pdf()保存图表显示正常,但需要在RStudio预览正确图表后再用png()保存。
可行解决方案
方法1:切换RStudio图形后端(推荐)
在RStudio中操作:
- 打开
Tools -> Global Options -> Graphics - 将Backend选项改为AGG
- 重启RStudio后重新运行绘图代码
AGG是RStudio内置的现代图形设备,原生支持半透明效果,无需额外安装依赖,稳定性优于Cairo。
方法2:使用ragg包替代Cairo
- 先安装系统依赖(终端执行):
sudo apt-get install libfreetype6-dev libpng-dev libtiff5-dev libjpeg-dev
- 在R中安装ragg包:
install.packages("ragg")
- 设置RStudio使用ragg作为图形设备:
options(device = "ragg_png")
之后运行绘图代码即可在预览窗看到透明效果,后续用png()保存时可指定type参数:
png("plot.png", type = "ragg") ggplot(as.data.frame(rowData(rpdata)))+geom_density(aes(x=length, fill=status), alpha=0.5) dev.off()
方法3:修复Cairo依赖问题(若坚持用Cairo)
之前崩溃大概率是系统级依赖缺失,先补全依赖:
- 终端执行:
sudo apt-get install libcairo2-dev libxt-dev
- 重新安装R的Cairo包:
install.packages("Cairo", type = "source")
- 设置bitmapType:
options(bitmapType="cairo")
重启RStudio后测试绘图代码。
内容的提问来源于stack exchange,提问作者Pau Clavell-Revelles
相关产品推荐
相关产品推荐

