gpt4 book ai didi

R - 绘制光栅时移动图例的最简单方法

转载 作者:行者123 更新时间:2023-12-01 12:31:05 25 4
gpt4 key购买 nike

我需要绘制光栅文件。

在我的输出图像中,图例上的数字有时不可见 - 特别是当我将图形窗口拆分为两列或更多列时(例如:par(mfrow=c(1,2)))。

我想过将图例移到底部(光栅图像下方)来解决这个问题。但是,我发现的大多数示例都建议使用全新的颜色和项目定义创建全新的图例。

我想使用默认图例。我只需要将它移到底部。我尝试按如下方式执行此操作:

library('raster')
data(volcano)
r <- raster(volcano)
# Trying to draw default legend below raster plot
plot(r, legend=F)
# Now trying to draw legend. Default is okay for me, I want to move it below only:
plot(r, legend.only=TRUE, legend.args=list("bottom", text='My values [m^3]'))

不幸的是,我的代码无法正常工作(似乎未使用“bottom”参数)。

What I need to achieve

最佳答案

tl;dr

尝试将 horizo​​ntal = TRUE 传递给 plot() 函数调用。

library('raster')

data(volcano)
r <- raster(volcano)

plot(r, legend.only=TRUE, horizontal = TRUE, legend.args = list(text='My values [m^3]'))

enter image description here

调整

您现在可以将 side=line= 参数传递给 legend.args 列表以指定您想要图例标签的位置(默认是 side = 3line = 0)。例如,您可以使用 side = 1 将“My values [m^3]”文本放在图例下方,并将其与图例隔开一点(相对于在图例之上!)使用行 = 2

plot(r, legend.only=TRUE, horizontal = TRUE, 
legend.args = list(text='My values [m^3]', side = 1, line = 2))

高级调整

如果您想在绘图右侧或底部以外的其他位置绘制图例,则必须先考虑使用 axes = FALSE 绘制光栅,然后再次绘制但通过作为参数 legend.only = TRUEsmallplot= c(xleft, xright, ybottom, ytop) 指定绘图区域中绘制彩色框的位置。

背景

诀窍在于 legend.args 列表被传递给 mtext() 函数,因此在基 R< 中定义图例位置的标准方法 使用 legend() 函数和使用 x= 参数(例如,“bottom”、“bottomright”)绘图不可用。

您可能认为 axis.args 列表会有所帮助,因为它也(可能违反直觉)控制图例的绘制方式。 axis.args 列表传递给axis() 函数绘制图例的一些特征,axis() 函数有一个side= 参数设置轴(在我们的例子中是图例)将被绘制在绘图的哪一侧!但是不, side= 参数是在绘制光栅图期间通过其他方式设置的。

您可能会问这些是什么意思?这是 horizo​​ntal= 参数!

可以将 horizo​​ntal= 参数传递给 plot() 调用,以说明您是否希望光栅图例位于图的右侧(默认情况下, horizo​​ntal = FALSE 在绘制图例的 axis() 函数调用中或在图的底部将 side= 参数设置为 4 (当 horizo​​ntal = TRUE 在绘制图例的 `axis() 函数调用中将 side= 参数设置为 1 时)

关于R - 绘制光栅时移动图例的最简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34133021/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com