【问题标题】:How can I format the axes in plotRGB from the R raster package?如何从 R raster 包中格式化 plotRGB 中的轴?
【发布时间】:2019-06-22 00:41:48
【问题描述】:

我正在尝试并排绘制两个图。一个是我使用 plotRGB() 的 RasterStack。然而,轴是一团糟 - 它为纬度和经度绘制了太多小数位。我还想更改字体大小和文本方向。

这在 plot() 中很简单,但我无法在 plotRGB 中弄清楚。

谁能帮忙?

这是代码:

par(mar=c(4,5,4,2), mfrow = c(1, 2))
plotRGB(tayRGB, axes = TRUE, stretch = "lin", main = "RGB")
plot(knr, main = "Kmeans", cex.axis=0.96, col = viridis_pal(option="D")(10))

【问题讨论】:

    标签: r plot rgb raster


    【解决方案1】:

    我可以推荐使用函数RStoolbox)::ggRGB 而不是plotRGB。这将为您提供 ggplot 的全部功能来自定义您的绘图。一个可重现的例子:

    set.seed(123)
    R = raster(matrix(runif(400),20,20))
    G = raster(matrix(runif(400),20,20))
    B = raster(matrix(runif(400),20,20))
    tayRGB = brick(list(R,G,B))
    
    library(RStoolbox)
    p1 = ggRGB(tayRGB, r=1, g=2, b=3, stretch = 'lin') +
      scale_y_continuous(labels = scales::number_format(accuracy = 0.001)) +
      scale_x_continuous(labels = scales::number_format(accuracy = 0.1)) +
      theme(axis.title.x = element_text(size = 30),
            axis.text.y = element_text(angle = 45))
    p1
    

    要与此并排绘制其他情节,您可以将其重新制作为 ggplot。或者您可以使用 ggplotify::base2grob 将基本 R 图转换为 grob。

    p2 = ggplotify::base2grob(~plot(rnorm(100)))
    cowplot::plot_grid(p1,p2)
    

    【讨论】:

    • 谢谢@dww。 ggRGB 看起来不错。它正在绘制并控制文本选项,这很棒,但有一些副作用......图像似乎被拉伸(宽度是高度的两倍),并且引发了与 number_format 相关的错误:@ 987654328@ 如果这个被删除了。它工作正常,但上面提到的拉伸。再次感谢您的快速回复!
    • 您没有提供可重现的示例(这类问题通常会出现这种情况),所以我无法知道为什么您的纵横比为 2:1。最可能的原因是栅格的地理范围实际上就是这种形状。纵横比当然可以使用 coord_fixed() 更改为您想要的任何内容,但光栅更有可能已经是正确的形状。至于scales::number_format,请尝试重新安装包秤。如果您正确安装了它,那么这确实是一个导出函数。
    猜你喜欢
    • 1970-01-01
    • 2019-10-09
    • 1970-01-01
    • 1970-01-01
    • 2013-01-06
    • 1970-01-01
    • 2019-09-21
    • 2016-10-14
    • 1970-01-01
    相关资源
    最近更新 更多