转换 HTML 到 RMarkdown 时如何处理空格块?

19

我一直在使用 Raster 和 RMarkdown 记录一些空间数据的可视化过程,但是每个图像上方都有很多负空间,这让我感到困扰。以下是 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, r1@crs)
##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, r1@crs)
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)
```

一切都运行正常,但是当Markdown输出到HTML时,也会包括一堆空白。[这里是已发布的RPub] (现在已解决)。(http://rpubs.com/pbwilliams/80167)。我认为这是一个光栅问题,因为我在ggplot中的图形等方面没有遇到这个问题。
我已经通过缩小图像来暂时解决了这个问题,但是每次我将图片放大到任何合理大小时,额外的空间就会增加。如果有人知道如何解决这个问题,那将不胜感激。

4
我目前还不知道根本原因,但是我猜测使用选项fig.keep = 'last'可以解决这个特定的问题,因为每个代码块似乎都有两个图表,而第一个是空白的(你只想保留最后一个)。 - Yihui Xie
1
@PatrickWilliams 也许值得将Yihui的评论作为解决方案提供,并接受它。否则,在StackOverflow搜索时,这个问题看起来仍然没有得到答复。 - Mike Williamson
@MikeWilliamson 谢谢。我不知道我可以这样做。 - Patrick Williams
1个回答

3

如评论中所建议,使用“chunk”选项fig.keep = 'last'可以解决这个特定问题,因为每个代码块似乎都有两个图,而第一个是空白的(您只想保留最后一个)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接