恐怕我又有一个spplot()问题。
我希望spplot()中的颜色表示绝对值,而不是自动值,因为spplot默认情况下会这样做。
我通过在要绘制的变量中添加一个因子来实现此目的(使用命令cut())。效果很好,但是色键看起来一点也不好。
自己看看:
library(sp)
data(meuse.grid)
gridded(meuse.grid) = ~x+y
meuse.grid$random <- rnorm(nrow(meuse.grid), 7, 2)
meuse.grid$random[meuse.grid$random < 0] <- 0
meuse.grid$random[meuse.grid$random > 10] <- 10
# making a factor out of meuse.grid$ random to have absolute values plotted
meuse.grid$random <- cut(meuse.grid$random, seq(0, 10, 0.1))
spplot(meuse.grid, c("random"), col.regions = rainbow(100, start = 4/6, end = 1))
我怎样才能在右边有一个color.key看起来好-我希望有更少的刻度和更少的标签(也许在color.key的每个极端上只有一个标签)
先感谢您!
[编辑]
为了明确我的意思是绝对值:想象一下我要显示海高的 map 。 Seaheight = 0(最小值)应始终显示为蓝色。 Seaheight = 10(仅出于示例目的,它是最大值)应始终显示为红色。即使 map 上显示的区域没有海洋,也不应更改。
我在示例中使用cut()命令实现了这一点。所以这部分工作正常。
这是我关于的问题
我不喜欢右边的颜色描述。有100个刻度,每个刻度都有一个标签。我想要更少的刻度线和更少的标签。
最佳答案
解决方法是使用属性colorkey。例如:
## labels
labelat = c(1, 2, 3, 4, 5)
labeltext = c("one", "two", "three", "four", "five")
## plot
spplot(meuse.grid,
c("random"),
col.regions = rainbow(100, start = 4/6, end = 1),
colorkey = list(
labels=list(
at = labelat,
labels = labeltext
)
)
)
关于r - spplot()-使color.key看起来不错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5161440/