用于镶板水平图的通用比例尺

Universal scale bar for paneled levelplots

我想在一个图中有多个 heatmaps/levelplots,并使用通用比例尺。我已经安排好了情节,我想我已经接近答案了,但我想确保我不会把比例放大。

#Fake data
library(gridExtra)
fill = rnorm(100,4)
matA = matrix(fill, ncol=10)
matB = matrix(fill * 2, ncol=10)

# Plotting
a=levelplot(matA, colorkey=FALSE)
b=levelplot(matB, colorkey=list(col=rainbow(1000), at=seq(0,6, length.out=1000)))

grid.arrange(a,b,ncol=2)

感谢您的帮助!

您可以重新排列数据,而不是使用 grid.arrange,以便能够使用 levelplotxformula 方法。这使您可以基于分组变量 g 以通用比例轻松创建包含不同面板的图。这里g('L1')对应不同的矩阵。

library(reshape2)
library(lattice)

# put your matrices in a list an melt them to one data frame.
l <- list(matA, matB)
df <- melt(l)

# plot
levelplot(value ~ Var1 * Var2 | L1, data = df,
          col.regions = rainbow(100))