R 用于光栅和点水平仪的单色键
使用下面的示例数据,如何使用与下面显示的“手动”连接图中相同的颜色键生成光栅和空间点图R 用于光栅和点水平仪的单色键,r,maps,raster,geopoints,levelplot,R,Maps,Raster,Geopoints,Levelplot,使用下面的示例数据,如何使用与下面显示的“手动”连接图中相同的颜色键生成光栅和空间点图 library(rasterVis) library(raster) library(colorRamps) col=colorRampPalette(matlab.like2(255)) s <- stack(replicate(2, raster(matrix(runif(100), 10)))) xy <- data.frame(coordinates(sampleRandom(s, 10
library(rasterVis)
library(raster)
library(colorRamps)
col=colorRampPalette(matlab.like2(255))
s <- stack(replicate(2, raster(matrix(runif(100), 10))))
xy <- data.frame(coordinates(sampleRandom(s, 10, sp=TRUE)),
z1=runif(10), z2=runif(10))
levelplot(s, margin=FALSE, at=seq(0, 1, 0.05),col.regions=col)
x=xy$x;y=xy$y;z=xy$z1
levelplot(z ~ x + y,contour=F, panel = panel.levelplot.points,
margin=FALSE,col.regions=col,
par.settings=list(axis.line=list(lwd=3), strip.border=list(lwd=3)),
cex=1.4, scales=list(x=list(cex=1.7),y=list(cex=1.7)),xlab=list(label="Longitude",cex=2),
ylab=list(label="Latitude",cex=2))
下面是我对使用同一颜色键打印多个绘图的评论
一个有待澄清的问题:
1) 如何决定小组的顺序?也就是说,使用index.cond
在levelplot
中放置特定绘图的行和列
首先,您可能应该确保点图中的断点与第一个
水平图中定义的断点相同
## raster plot with colorkey disabled
pr <- levelplot(s, margin = FALSE, at = seq(0, 1, 0.05), col.regions = col,
colorkey = FALSE, xlab = list("Longitude", col = "transparent"))
## points plot
pp <- levelplot(z ~ x + y, panel = panel.levelplot.points, cex = 1.4,
contour = FALSE, margin = FALSE, col.regions = col,
colorkey = list(at = seq(0, 1, .05), width = .6, height = .6),
xlab = "Longitude", ylab = "Latitude")
这是我使用晶格额外::c.trellis的解决方案
:
library(raster)
library(rasterVis)
s <- stack(replicate(2, raster(matrix(runif(100), 10))))
xy <- data.frame(coordinates(sampleRandom(s, 10, sp=TRUE)),
z1=runif(10), z2=runif(10))
## Define theme and breaks
myTheme <- BTCTheme()
my.at <- seq(0, 1, 0.05)
p3 <- c(p1, p2, layout = c(3, 1))
使用lattice::levelplot
绘制点:
p1 <- levelplot(s, margin=FALSE,
at = my.at,
par.settings = myTheme)
p2 <- levelplot(z1 ~ x + y, data = xy,
at = my.at,
panel = panel.levelplot.points,
par.settings = myTheme)
不幸的是,c.grillis
没有正确分配条形标签,因此您必须直接定义它们:
update(p3,
strip = strip.custom(factor.levels = c(names(s), "Points")))
非常好的解决方案。谢谢。如果用一个颜色键显示8行3列,会怎么样?通常我会使用layout=c(3,8),index.cond=list(c(1,2,…)
来获取我的网格<代码>视口
在安排绘图时可能会很棘手。针对布局
和索引.cond
的任何解决方法?为此,在我们的Rsenal包中调用了一个函数。只需通过devtools::install_github(“environmentalinformatics marburg/Rsenal”)
安装软件包,然后运行例如latticeCombineGrid(mget(rep(“pp”),layout=c(3,8))
。请注意,当所有绘图都有相同的x和y限制时,结果看起来最好。你救了我一天latticeCombineGrid
看起来很有前途。我一定会试试的。再次感谢。为便于将来参考,latticeCombineGrid()
已移至。在上面的图中,x和y记号标签如何打印为地理坐标(例如101W、102W、15N等)?请在上一期中发布不同的问题。这更简单,更容易实现。谢谢最后一行代码可用于确定每个绘图在面板中的位置。如果我知道s
的名称,那么我可以轻松决定显示它们的顺序。
p3 <- c(p1, p2, layout = c(3, 1))
update(p3,
strip = strip.custom(factor.levels = c(names(s), "Points")))