sp::spplot 的帮助页面说这是使用 lattice 函数完成的,并进一步指出可以scale
以与 xyplot 中相同的方式将参数传递给参数。但是,这不太可能影响图例,而是会更改 x 和 y 轴的注释。当我在帮助页面中运行第一个示例时,我得到一个从 0 到 500 的 scale.bar,只有这两个值作为标签。查看使用的代码可以推断出“scale.bar”是用传递给的参数构造的sp.layout
,在这种情况下list(l2,l3,l4,l5)
。经过几次死胡同尝试后,我提出了有关如何使用 latticesimpleKey
函数来提供您的图例修改并制作比例尺的建议,如第一个示例所示:
library(sp); library(lattice)
l2 = list("SpatialPolygonsRescale", layout.north.arrow(), offset = c(181300,329800),
scale = 400)
l3 = list("SpatialPolygonsRescale", layout.scale.bar(), offset = c(180500,329800),
scale = 500, fill=c("transparent","black"))
l4 = list("sp.text", c(180500,329900), "0")
l5 = list("sp.text", c(181000,329900), "500 m")
spplot(meuse, c("ffreq"), sp.layout=list(l2,l3,l4,l5)
,key=simpleKey( text=paste0("$", 1:3) ) )
注意:由于spplot
是 S4 函数,因此您可以通过以下方式获取代码:
showMethods(spplot, class="SpatialPointsDataFrame", includeDefs=TRUE)