我试图在回归线周围创建一个半透明置信区域:
library(car)
library(ggplot2)
library(effects)
mod <- lm(salary~yrs.service+sex, data=Salaries)
yrseff <- as.data.frame(allEffects(mod)[[1]])
ggplot(yrseff, aes(x=yrs.service, y=fit))+
geom_ribbon(aes(ymin=lower, ymax=upper), alpha=.2)+
geom_line(colour="darkgreen", size=2)
我收到此错误消息:
警告讯息: 在grid.Call.graphics(L_polygon,x $ x,x $ y,index)中: 此设备不支持半透明度:每页仅报告一次
但是,如果我首先打开一个pdf设备(如下面的代码所示),它会创建一个带有半透明功能区的pdf文件。
pdf()
ggplot(yrseff, aes(x=yrs.service, y=fit))+
geom_ribbon(aes(ymin=lower, ymax=upper), alpha=.2)+
geom_line(colour="darkgreen", size=2)
dev.off()
可能是什么问题?有没有办法获得半透明度而无需保存为pdf?
我在Ubuntu 12.04上使用RStudio,这是我的会话信息。
> sessionInfo()
R version 3.0.3 (2014-03-06)
Platform: i686-pc-linux-gnu (32-bit)
locale:
[1] LC_CTYPE=en_CA.UTF-8 LC_NUMERIC=C LC_TIME=en_CA.UTF-8
[4] LC_COLLATE=en_CA.UTF-8 LC_MONETARY=en_CA.UTF-8 LC_MESSAGES=en_CA.UTF-8
[7] LC_PAPER=en_CA.UTF-8 LC_NAME=C LC_ADDRESS=C
[10] LC_TELEPHONE=C LC_MEASUREMENT=en_CA.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] grid stats graphics grDevices utils datasets methods base
other attached packages:
[1] ggplot2_0.9.3.1 car_2.0-19 effects_3.0-0 colorspace_1.2-4
[5] lattice_0.20-27
loaded via a namespace (and not attached):
[1] dichromat_2.0-0 digest_0.6.4 gtable_0.1.2 labeling_0.2
[5] MASS_7.3-29 munsell_0.4.2 nnet_7.3-7 plyr_1.8.1
[9] proto_0.3-10 RColorBrewer_1.0-5 Rcpp_0.11.1 reshape2_1.2.2
[13] scales_0.2.3 stringr_0.6.2 tools_3.0.3
如果这是有用的信息:
getOption("device")
[1] "RStudioGD"
答案 0 :(得分:10)
我遇到与OP完全相同的问题,但在我的情况下设置options(bitmapType="cairo")
并没有解决问题。
在我的情况下,问题是由于我在没有--with-cairo
配置选项的情况下从源手动编译R(或者更确切地说:我的系统缺少必要的libcairo2-dev包,--with-cairo
没有任何影响)。用适当的cairo支持重新编译R修复了这个问题。它现在甚至可以工作,虽然getOption("bitmapType")
仍设置为“Xlib”。
答案 1 :(得分:9)
根据OP的要求:
您可以在配置中粘贴getOption("bitmapType")
的输出吗?如果不是&#34; cairo
&#34;尝试通过options(bitmapType="cairo")
将其设置为,并查看是否收到相同的错误。
答案 2 :(得分:1)
在RStudio中运行包'dismo'和'ggplot2'时遇到了类似的问题。在我将'Ghostscript'安装到我的Window_64后,这个问题就开始了,我从计算机中删除了所有这些文件夹,以检查它是否正常工作。删除'Ghostscript'后,RStudio正常工作,没有任何错误。但是,通过使用上述帖子中的选项(bitmapType =“cairo”),我可以解决错误,但我必须每次都重新运行以获得RStudio的正常运行。