GGMAP отсутствует фоновая карта (за исключением случаев использования устройства PDF)

StackOverflow https://stackoverflow.com/questions/19840647

  •  29-07-2022
  •  | 
  •  

Вопрос

Я использую библиотеку GGMAP в R, чтобы создать карту района Атланты. При запуске кода я могу получить построенные точки на карте, а также на другие слои, но не могу заставить саму карту печатать на любом графическом устройстве, кроме PDF. Я подозреваю, что проблема конфигурации, так как я могу использовать этот код на другом компьютере без проблем, но две другие машины просто отображают пустые сюжеты.

Вот уменьшенная версия кода. Я предполагаю, что мои пустые сюжеты не будут воспроизводимы, но я надеюсь получить некоторое руководство о том, где может быть проблема конфигурации.

library('ggplot2')
library('ggmap')
library('mapproj')

# ggmapTemp.png gets saved to the working directory correctly
atlanta <- get_map(location=c(lon=-84.26039,
                              lat=33.8751),
                   zoom=9,maptype='roadmap')

atlantaMap <- ggmap(atlanta, extent = 'device', legend = 'topleft')

# this produces a blank plot from both RStudio as well as R
atlantaMap

# this produces the actual map correctly
pdf("plot.pdf")
atlantaMap
dev.off()

# this produces a png file with only a white background
png("plot.png")
atlantaMap
dev.off()

Информация о сеансе:

R version 2.15.3 (2013-03-01)
Platform: x86_64-w64-mingw32/x64 (64-bit)

locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252   
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C                          
[5] LC_TIME=English_United States.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
 [1] mapproj_1.2-1    ggmap_2.3        ggplot2_0.9.3.1  maps_2.3-6       maptools_0.8-27 
 [6] sp_1.0-14        car_2.0-19       reshape2_1.2.2   plyr_1.8         Revobase_6.2.0  
[11] RevoMods_6.2.0   RevoScaleR_6.2.0 lattice_0.20-13  rpart_4.1-0     

loaded via a namespace (and not attached):
 [1] codetools_0.2-8     colorspace_1.2-4    dichromat_2.0-0     digest_0.6.3        foreach_1.4.0      
 [6] foreign_0.8-52      grid_2.15.3         gtable_0.1.2        iterators_1.0.6     labeling_0.2       
[11] MASS_7.3-23         munsell_0.4.2       nnet_7.3-5          png_0.1-6           proto_0.3-10       
[16] RColorBrewer_1.0-5  RgoogleMaps_1.2.0.5 rjson_0.2.13        RJSONIO_1.0-3       scales_0.2.3       
[21] stringr_0.6.2       tools_2.15.3   

И возможности:

jpeg      png     tiff    tcltk      X11     aqua http/ftp  sockets   libxml     fifo   cledit 
TRUE     TRUE     TRUE     TRUE    FALSE    FALSE     TRUE     TRUE     TRUE    FALSE     TRUE 
iconv      NLS  profmem    cairo 
TRUE     TRUE     TRUE     TRUE 
Это было полезно?

Решение

Проблема связана с тем, что сервер ограничивает глубину бита, который проходит через соединение. Оракул документирует проблему и решение на их сайте:

В сессии удаленного рабочего стола все переменные среды, включая переменные отображения, определяющие глубину цвета, определяются настройками соединения RCP-TCP. Например, пользователи могут уменьшить глубину цвета при подключении через медленное соединение. Различные настройки составляют 15 бит, 16 бит, 24 бита или 32 бита на пиксель. Чтобы повысить глубину цвета дистанционного рабочего стола:

На сервере Windows запустите конфигурацию хоста сеанса удаленного рабочего стола из меню аксессуаров. Под соединениями щелкните правой кнопкой мыши на RDP-TCP и выберите свойства. На вкладке «Настройки клиента» снят съемки Limitmaximum Deeping Dybine, либо установите ее до 32 бит на пиксель.

После неофициального значения флажок «Максимальная глубина цвета» и повторное соединение с сервером, фон растровой карты теперь отображаются, как и ожидалось. Обратите внимание, что они также предоставляют вариант 2, который выводит на альтернативное устройство.

Другие советы

Кажется, что Джершренк давно не обновлял R и пакеты. Хотя теоретически ваши версии R, GGMAP, PNG и GGPLOT2 кажется достаточными:

    Package: ggmap
    Version: 2.4
    Depends: R (>= 2.14.0), ggplot2 (>= 0.9.2)
    Imports: proto, scales, RgoogleMaps, png, plyr, reshape2, grid, rjson,
            mapproj, jpeg, geosphere, digest
    Suggests: MASS, stringr
        License: GPL-2
        NeedsCompilation: no

    Package: png
    Version: 0.1-7
    Depends: R (>= 2.9.0)
    License: GPL-2 | GPL-3
    NeedsCompilation: yes

Я бы просто попытался обновить r и пакеты, чтобы увидеть, решает ли это проблему:

#Save your current packages but not the base ones:
savepackages <- rownames(installed.packages(priority='NA')) 
write(savepackages, file="listpackages.txt")

#Check for Updates of R
library(installr)
check.for.updates.R(notify_user = TRUE, use_GUI = TRUE,
                    page_with_download_url = "http://cran.rstudio.com/bin/windows/base/",
                    pat = "R-[0-9.]+-win")

#Download and Install New Version
install.R(page_with_download_url = "http://cran.rstudio.com/bin/windows/base/",
          pat = "R-[0-9.]+-win.exe", to_checkMD5sums = TRUE,
          keep_install_file = TRUE, download_dir = tempdir(), silent = FALSE)

#Then reinstall packages 
pkg.ls <- read.table("listpackages.txt")
install.packages(pkg.ls)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top