vorrei fare una trama utilizzando Studio R simile a quello qui sotto (creato nel Arc Mappa)Come impostare l'uso ggplot2 per mappare un raster
Ho provato il seguente codice:
# data processing
library(ggplot2)
# spatial
library(raster)
library(rasterVis)
library(rgdal)
#
test <- raster(paste(datafold,'oregon_masked_tmean_2013_12.tif',sep="")) # read the temperature raster
OR<-readOGR(dsn=ORpath, layer="Oregon_10N") # read the Oregon state boundary shapefile
gplot(test) +
geom_tile(aes(fill=factor(value),alpha=0.8)) +
geom_polygon(data=OR, aes(x=long, y=lat, group=group),
fill=NA,color="grey50", size=1)+
coord_equal()
L'output di tale codice simile a questo:
Un paio di cose da notare. Innanzitutto, gli shapefile spartiacque mancano nella versione R. questo va bene.
In secondo luogo, lo sfondo grigio più scuro nel grafico R è Nessun valore dati. In Arc, non vengono visualizzati, ma in R vengono visualizzati con gplot. Essi non vengono visualizzati quando uso 'plot' dal pacchetto raster:
plot(test)
Le mie domande sono le seguenti:
- Come faccio a sbarazzarsi del grigio scuro NoData riempire nell'esempio "gplot"?
- Come impostare la legenda (colorbar) come ragionevole (come nelle legende 'trama' di ArcMap e raster?)
- Come si controlla la mappa di colori?
notare, ho provato molte versioni differenti di
scale_fill_brewer
scale_fill_manual
scale_fill_gradient
e così via e così via, ma io ottenere gli errori, ad esempio
br <- seq(minValue(test), maxValue(test), len=8)
gplot(test)+
geom_tile(aes(fill=factor(value),alpha=0.8)) +
scale_fill_gradient(breaks = br,labels=sprintf("%.02f", br)) +
geom_polygon(data=OR, aes(x=long, y=lat, group=group),
fill=NA,color="grey50", size=1)+
coord_equal()
Regions defined for each Polygons
Error: Discrete value supplied to continuous scale
Infine, una volta ho una soluzione per tracciare una di queste mappe, vorrei tracciare più mappe su una figura e creare una singola barra di colore per l'intero pannello (cioè una barra di colore per tutte le mappe) e vorrei poter controllare dove si trova la barra dei colori e la dimensione del col Orbar. Ecco un esempio di quello che posso fare con grid.arrange, ma non riesco a capire come impostare una singola barra colorata:
r1 <- test
r2 <- test
r3 <- test
r4 <- test
colr <- colorRampPalette(rev(brewer.pal(11, 'RdBu')))
l1 <- levelplot(r1,
margin=FALSE,
colorkey=list(
space='bottom',
labels=list(at=-5:5, font=4),
axis.line=list(col='black')
),
par.settings=list(
axis.line=list(col='transparent')
),
scales=list(draw=FALSE),
col.regions=viridis,
at=seq(-5, 5, len=101)) +
layer(sp.polygons(oregon, lwd=3))
l2 <- levelplot(r2,
margin=FALSE,
colorkey=list(
space='bottom',
labels=list(at=-5:5, font=4),
axis.line=list(col='black')
),
par.settings=list(
axis.line=list(col='transparent')
),
scales=list(draw=FALSE),
col.regions=viridis,
at=seq(-5, 5, len=101)) +
layer(sp.polygons(oregon, lwd=3))
l3 <- levelplot(r3,
margin=FALSE,
colorkey=list(
space='bottom',
labels=list(at=-5:5, font=4),
axis.line=list(col='black')
),
par.settings=list(
axis.line=list(col='transparent')
),
scales=list(draw=FALSE),
col.regions=viridis,
at=seq(-5, 5, len=101)) +
layer(sp.polygons(oregon, lwd=3))
l4 <- levelplot(r4,
margin=FALSE,
colorkey=list(
space='bottom',
labels=list(at=-5:5, font=4),
axis.line=list(col='black')
),
par.settings=list(
axis.line=list(col='transparent')
),
scales=list(draw=FALSE),
col.regions=viridis,
at=seq(-5, 5, len=101)) +
layer(sp.polygons(oregon, lwd=3))
grid.arrange(l1, l2, l3, l4,nrow=2,ncol=2) #use package gridExtra
Il risultato è questo:
Lo shapefile e file raster sono disponibili al seguente link:
https://drive.google.com/open?id=0B5PPm9lBBGbDTjBjeFNzMHZYWEU
Molte grazie in anticipo.
devtools :: session_info() Informazioni sulla sessione ------------------------------------- -------------------------------------------------- ------------------------------ valore impostazione
versione R versione 3.1.1 (2014-07-10) sistema x86_64, darwin10.8.0
ui RStudio (0.98.1103)
lingua (EN)
fascicolazione en_US.UTF-8
tz America/Los_Angeles
Pacchetti --------------- -------------------------------------------------- -------------------------------------------------- ------ pacchetto * versione data origine
bitops 1.0-6 2013-08-17 CRAN (R 3.1.0) spazio colori 1.2-6 2015-03-11 CRAN (R 3.1.3) devtools 1.8 .0 2015-05-09 CRAN (R 3.1.3) digest 0.6.4 2013-12-03 CRAN (R 3.1.0) ggplot2 * 1.0.1 2015-03-17 CRAN (R 3.1.3) ggthemes * 2.1.2 2015-03-02 CRAN (R 3.1.3) git2r 0.10.1 2015-05-07 CRAN (R 3.1 .3) gridExtra 0.9.1 2012-08-09 CRAN (R 3.1.0) gtable 0.1.2 2012-12-05 CRAN (R 3.1.0) hexbin * 1.26.3 2013-12-10 CRAN (R 3.1.0) reticolo * 0.20-29 2014-04-04 CRAN (R 3.1.1) reticoloExtra * 0.6-26 2013-08-15 CRAN (R 3.1.0) magrittr 1.5 2014-11-22 CRAN (R 3.1.2) MASS 7.3-33 2014-05-05 CRAN (R 3.1.1) memoise 0.2.1 2014-04-22 CRAN (R 3.1.0) munsell 0.4.2 2013-07-11 CRAN (R 3.1.0) plyr 1.8.2 2015-04-21 CRAN (R 3.1.3) proto 0.3-10 2012-12-22 CRAN (R 3.1.0) raster * 2.2-31 2014-03-07 CRAN (R 3.1.0) rasterVis * 0.28 2014-03-25 CRAN (R 3.1.0) RColorBrewer * 1.0-5 2011-06- 17 CRAN (R 3.1.0) Rcpp 0.11.2 2014-06-08 CRAN (R 3.1.0) RCurl 1.95-4.6 2015-04-24 CRAN (R 3.1.3) rimodellare2 1.4.1 2014-12 -06 CRAN (R 3.1.2) rgdal * 0.8-16 2014-02-07 CRAN (R 3.1.0) rversions 1.0.0 2015-04-22 CRAN (R 3.1.3) scale * 0.2.4 2014-04-22 CRAN (R 3.1.0) sp * 1.0-15 2014-04-09 CRAN (R 3.1.0) stringi 0.4-1 2014-12-14 CRAN (R 3.1.2) stringr 1.0 .0 2015-04-30 CRAN (R 3.1.3) viridis * 0.3.1 2015-10-11 CRAN (R 3.2.0) XML 3,98-1,1 2013/06/20 CRAN (R 3.1.0) zoo 1,7-11 2014/02/27 CRAN (R 3.1.0)
qual è il motivo che si desidera utilizzare ggplot per questo? – RobertH
@RobertH Non mi sono impegnato a utilizzare ggplot, ma in generale mi piace ggplot e sto cercando di impararlo, quindi mi piacerebbe essere in grado di produrre grafici con ggplot in modo efficace. Per favore sentiti libero di condividere anche altre soluzioni. Grazie. –
@hrbrmstr, per favore, identifica ciò che non funziona. Forse stai lottando con il fatto che ho incluso alcuni percorsi assoluti che ovviamente non funzioneranno sulla macchina di qualcun altro. Ho incluso un collegamento ai dati reali alla fine del mio messaggio. Se si inseriscono i dati in una cartella e si sostituiscono i percorsi con il percorso della cartella, dovrebbe funzionare. Non sono abbastanza abile con R per generare i dati da zero. –