Domanda

Sto usando la libreria GGMAP in R per produrre una mappa dell'area di Atlanta. Quando si esegue il codice, sono in grado di ottenere punti tracciati sulla mappa e altri livelli, ma non sono in grado di far stampare la mappa stessa in qualsiasi dispositivo grafico diverso da PDF. Sospetto un problema di configurazione in quanto sono in grado di utilizzare questo codice su un altro computer senza problemi, ma altre due macchine mostrano semplicemente grafici vuoti.

Ecco una versione ridotta del codice. Suppongo che le mie trame vuote non saranno riproducibili, ma spero di ottenere una guida su dove potrebbe essere il problema della configurazione.

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()

Informazioni sulla sessione:

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   

E capacità:

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 
È stato utile?

Soluzione

Il problema ha a che fare con il server che limita la profondità del bit che viene passata attraverso la connessione. Oracolo documenta il problema e la soluzione Sul loro sito:

In una sessione desktop remota, tutte le variabili di ambiente, comprese le variabili di visualizzazione che determinano la profondità del colore, sono determinate dalle impostazioni di connessione RCP-TCP. Ad esempio, gli utenti possono ridurre la profondità del colore quando si collegano su una connessione lenta. Le diverse impostazioni sono 15 bit, 16 bit, 24 bit o 32 bit per pixel. Per aumentare la profondità del colore del desktop remoto:

Sul server Windows, avvia la configurazione dell'host di sessione desktop remota dal menu Accessori. In connessioni, fare clic con il tasto destro su RDP-TCP e selezionare Proprietà. Nella scheda Impostazioni client deseleziona la profondità del colore limitemaximum o impostalo su 32 bit per pixel.

Dopo aver deselezionato la casella di controllo "limite la profondità massima del colore" e riconnettersi al server, gli sfondi della mappa raster ora vengono visualizzati come previsto. Si noti che forniscono anche l'opzione 2 che è quello di produrre un dispositivo alternativo.

Altri suggerimenti

Sembra che Jrshrenk non abbia aggiornato R e i pacchetti da un po '. Sebbene in teoria le tue versioni di R, GGMAP, PNG e GGPlot2 sembrano sufficienti:

    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

Proverei solo ad aggiornare R e i pacchetti per vedere se risolve il problema:

#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)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top