我想在一个图中有多个热图/水平图,带有通用比例尺。我已经安排了这些情节,我想我已接近答案,但我想确保我不会把规模搞得一团糟。
#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)
感谢您的帮助!
答案 0 :(得分:2)
您可以重新排列数据,而不是使用grid.arrange
,以便能够使用formula
中的x
levelplot
方法。这使您可以使用具有共同比例的分组变量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))