plotRGB 添加标题

plotRGB add title

我想为 plotRGB 输出添加标题。

#create random raster stack
r1 <- raster(nrow=5, ncol=5)
values(r1) <- 1:25

r2 <- r3 <- r1  
RGB_stack <- stack(r1, r2, r3)

我试过:

# Create an RGB image from the raster stack
plotRGB(RGB_stack, r = 1, g = 2, b = 3,
        axes=TRUE, main="My Title")


plotRGB(RGB_stack, r = 1, g = 2, b = 3,
        axes=TRUE, addfun="(title='Test title')")

我试过打开和关闭轴。我不确定还有什么可以尝试使这项工作。


更新: 根据下面的反馈,我发现

#Create an RGB image from the raster stack
plotRGB(RGB_stack, r = 1, g = 2, b = 3,
        axes=TRUE, main="My Title")

如果您清除了之前可能关闭轴的绘图,则可以使用。但是我仍然希望情节是一个没有轴刻度而只有标题的图像。

你的第一个猜测对我有用:

plotRGB(RGB_stack, r = 1, g = 2, b = 3,
        axes=TRUE, main="My Title")

经过讨论,确实设置axes=FALSE也删除了标题。作为解决方法,您可以尝试以白色绘制轴和标签。我也加了个白框。

original_par <-par() #original par
par(col.axis="white",col.lab="white",tck=0)
plotRGB(RGB_stack, r = 1, g = 2, b = 3,
        axes=TRUE, main="My Title")
box(col="white")
par(original_par) # go back to original par

我也不希望我的 plotRBG 图上有坐标轴。

我破解了 legend 函数来绕过这个问题而不改变我的 par() 参数,因为我正在制作一个多框布局。

legend("top", legend = NA, title = expression(bold("(My title)")), bty = "n", cex = 1.3)

我遇到了同样的问题。图例 hack 对我不起作用,所以我在 par().

中使用了 graphics::title 函数
title(main = "My title", cex.main = 1.3)

对我有用的一种方法是在 plotRGB 中设置 margins = TRUE,如下所示:

plotRGB(RGB_stack, r = 1, g = 2, b = 3,margins=TRUE, main="My Title")

我不知道为什么,但它奏效了。