5

我的目标是构建一个水平图(来自 lattice 包),其中 4 个或更多单独的图共享相同的颜色键。虽然这似乎使用函数相对简单,但我无法找到使用数据矩阵的解决方案。只有一个矩阵的工作级别图示例:

d <- replicate(10,rnorm(10))
levelplot(d)

我找到了使用 print 和 split 在同一屏幕上显示所有 4 个级别图的部分解决方案,但这需要我关闭颜色键,或者在每个图上显示它。这两种解决方案都不完全令人满意。

如果我在 levelplot 中使用 layout-option,如下所示:

levelplot(d, layout=c(2,2))

,我得到了想要的布局,有一个大的颜色键,主要和 xlab/ylab,但只有一个 levelplot 打印。

我一直在尝试构建一个能产生预期结果的公式,但恐怕我对数据框、数组和矩阵的理解还不够深入。如果有人知道可行的解决方案,我将不胜感激。我想象的是(不工作的代码):

d1 <- replicate(10,rnorm(10))
d2 <- replicate(10,rnorm(10))
d3 <- replicate(10,rnorm(10))
d4 <- replicate(10,rnorm(10))

d <- list(d1,d2,d3,d4)
di <- c(1,2,3,4)

levelplot(x ~ y | di, data = d, layout=c(2,2))

注意!避免使用矩阵不是一种选择。其中一些是从原始文本文件中获得的。

先感谢您,

-J.P

4

1 回答 1

7

使用ggplotreshape与您的列表一起使用d

require(reshape)
require(ggplot2)

ggplot(melt(d), aes(x=X1, y=X2)) +
  facet_wrap(~ L1, ncol=2) +
  geom_tile(aes(fill=value)) +
  coord_equal()

这使:

在此处输入图像描述

于 2012-08-26T14:42:00.763 回答