【问题标题】:How to set the same outptut extent for plotRGB and plot?如何为 plotRGB 和 plot 设置相同的输出范围?
【发布时间】:2014-08-21 10:40:18
【问题描述】:

使用plotplotRGB 生成绘图不会给出相同的输出范围。我想为12 提供相同程度的输出。

# generate red, green, blue random 10 by 10 matrix
r <- g <- b <- raster(ncol=10, nrow=10)
values(r) <- runif(ncell(r))
values(g) <- runif(ncell(r))
values(b) <- runif(ncell(r))

rgb = rgb<-stack(r*255,g*255,b*255)

# plot red
plot(r,legend=F)
# plot RGB
plotRGB(rgb)

【问题讨论】:

    标签: r plot raster


    【解决方案1】:

    函数raster::plot 想要在绘图中添加一个图例,因此它在右侧节省了一些空间,而plotRGB 只是占据了整个范围。

    您可以通过将栅格添加到现有绘图来解决此问题:

    library(raster)
    
    # generate red, green, blue random 10 by 10 matrix
    r <- g <- b <- raster(ncol=10, nrow=10)
    values(r) <- runif(ncell(r))
    values(g) <- runif(ncell(r))
    values(b) <- runif(ncell(r))
    
    rgb = rgb<-stack(r*255,g*255,b*255)
    par(mfrow=c(2,1))
    
    plot(c(-180,180),c(-90,90), type='n', axes=F, xlab='', ylab='')
    plotRGB(rgb,add=T)
    
    plot(c(-180,180),c(-90,90), type='n', axes=F, xlab='', ylab='')
    plot(r,add=T, legend=F)
    

    【讨论】:

    • @koekenbakker:确实,你是对的,它适用于你的建议,但我无法删除 xlabel 和 ylabel(xlab 是 c(-180,180) 而 ylab 是 c(- 90,90)) 使用 xlab=NULL 和 ylab=NULL。知道如何删除它们吗?
    • 是的,'' 而不是 NULL:)
    猜你喜欢
    • 2012-10-11
    • 2011-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多