Полупрозрачность в RStudio

Я пытаюсь создать график с полупрозрачной доверительной областью вокруг линии регрессии:

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?

Я использую RStudio на Ubuntu 12.04, и вот моя информация о сессии.

> 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"

3 ответа

Решение

По запросу ОП:

Можете ли вы вставить вывод getOption("bitmapType") в твоем конфиге? Если это не такcairo"попробуйте установить это через options(bitmapType="cairo") и посмотреть, если вы получите ту же ошибку.

У меня была точно такая же проблема, как и у ОП, но в моем случае настройки options(bitmapType="cairo") не решил проблему.

В моем случае проблема была вызвана тем, что я скомпилировал R вручную из источника без --with-cairo опция настройки (или, скорее: моей системе не хватало необходимого пакета libcairo2-dev, --with-cairo не имел никакого эффекта). Перекомпиляция R с надлежащей поддержкой Каира исправила проблему. Теперь даже работает хотя getOption("bitmapType") все еще установлен в `"Xlib".

Я столкнулся с подобными проблемами при запуске пакетов 'dismo' и 'ggplot2' в RStudio. Когда эта проблема началась после того, как я установил "Ghostscript" в свой Window_64, я удалил все эти папки со своего компьютера, чтобы проверить, работает ли он нормально. RStudio работал нормально без каких-либо ошибок после удаления Ghostscript. Однако, используя параметры (bitmapType="cairo"), как указано в сообщениях выше, я мог устранить ошибку, но мне приходилось каждый раз перезапускаться для нормального функционирования RStudio.

У меня была такая же проблема под Ubuntu 16.04 при использовании RStudio с R v4.4.0. После обновления R до v4.4.4 и запуска RStudio с терминала все работало нормально.

Помните, что версия R, используемая RStudio, зависит от способа запуска приложения (с рабочего стола или терминала).

Другие вопросы по тегам