2015-05-20 25 views
19

Raster ve RMarkdown kullanarak bazı uzamsal verilerin görselleştirilmesini kaydetme üzerinde çalışıyorum, ancak her bir rakamın üzerinde bir grup negatif alan olmakla ilgili bir sorun yaşıyorum. İşte (biraz basitleştirilmiş) RMarkdown kodudur:Aşağıdaki HTML örgüleri - Beyaz alan bloğu dahil RMarkdown

```{r global_options, include=FALSE} 
knitr::opts_chunk$set(fig.width=12, fig.height=8, echo=FALSE, 
         warning=FALSE, message=FALSE) 
``` 

```{r r-packages} 
library(maptools) 
library(raster) 
library(rgdal) 
``` 
###Description of data 
Data are taken from the National Land Cover Database - 2011 and represent land cover at a 30m X 30m resolution. 
location of data: [National Land Cover Database - 2011]('http://gisdata.usgs.gov/TDDS/DownloadFile.php?TYPE=nlcd2006&FNAME=nlcd_2006_landcover_2011_edition_2014_10_10.zip') 

###Import raster file for US landcover and shapefile for state borders and counties 

```{r Import raster file for us landcover} 
rfile <- '~/Documents/Data/nlcd_2006_landcover_2011_edition_2014_10_10/nlcd_2006_landcover_2011_edition_2014_10_10.img' #location of raster data 
r1 <- raster(rfile) 

##Import shapefile for state borders 
statepath <- '~/Documents/Data/' 
setwd(statepath) 
shp1 <- readOGR(".", "states") 
##Transform shapefile to fit raster projection 
shp1 <- spTransform(shp1, [email protected]) 
##Remove hawaii and alasks which are not in raster image 
shp1.sub <- c("Hawaii","Alaska") 
states.sub <- shp1[!as.character(shp1$STATE_NAME) %in% shp1.sub, ] 

##Import county data 
#data source: ftp://ftp2.census.gov/geo/tiger/TIGER2011/COUNTY/tl_2011_us_county.zip 
countypath <- '~/Documents/Data/tl_2011_us_county' 
setwd(countypath) 
shp2 <- readOGR(".", "tl_2011_us_county") 
##Transform shapefile to fit raster projection 
counties <- spTransform(shp2, [email protected]) 
counties.sub <- counties[as.character(counties$STATEFP) %in% states.sub$STATE_FIPS, ] 
``` 
Raster plot of US with state and county border overlays 
```{r plot landcover with state borders} 
#Plot state borders over raster 
plot(r1) 
plot(counties.sub, border = "darkgrey",lwd=.65,add=T) 
plot(states.sub,border = "darkblue",add=T) 
``` 
Raster cropped and masked to extent of California 
```{r crop raster to a single state (California)} 
shp.sub <- c("California") 
shp.ca <- states.sub[as.character(states.sub$STATE_NAME) %in% shp.sub, ] 

r1.crop <- crop(r1, extent(shp.ca)) 

plot(r1) 
``` 

Her şey iyi çalışır, ancak markdown HTML çıktısı olduğunda, beyaz boşluk bir demet de dahildir. [İşte yayınlanan RPub] (şimdi çözüldü). (http://rpubs.com/pbwilliams/80167). Sanırım bu bir Raster problemi, çünkü bu sayıyı rakamlarla, örneğin ggplotta görmedim.

Görüntüyü küçülterek bunu geçici olarak düzeltebildim, ancak resmi büyüttüğüm her şey için büyüttüğümde ek alan eklenir. Bunu nasıl düzelteceğini bilen varsa, bu çok takdir edilecektir.

+4

Kök nedenini henüz bilmiyorum, ama sanırım chunk seçeneğini kullanıyorum 'fig.keep =' last 'bu problemi düzeltmeli çünkü her kod parçası iki parsele sahip gibi görünüyor ve boş bir (sadece sonuncusu tutmak istersiniz). –

+1

@PatrickWilliams Yihui'nin yorumunu bir çözüm olarak sunmak ve sonra onu kabul etmek faydalı olabilir. Aksi takdirde, StackOverflow ile arama yaparken bu sorunun hala yanıtlanmamış gibi görünüyor. –

+0

@MikeWilliamson teşekkürler. Bunu yapabileceğimin farkında değildim. –

cevap

1

Açıklamalarda önerildiği gibi, fig.keep = 'last' numaralı öbek seçeneği kullanılarak bu sorun giderilmelidir, çünkü her kod yığınının iki grafiği olduğu ve ilkinin boş olduğu (yalnızca sonuncuyu tutmak istediğiniz) olduğu görülmektedir.