首页 文章

R:来自矩阵的多个晶格水平图

提问于
浏览
5

我的目标是使用共享相同颜色键的4个或更多个别图来构建一个水平图(来自晶格包) . 虽然使用函数似乎相对简单,但我还是找不到使用数据矩阵的解决方案 . 仅使用一个矩阵的工作级别图的示例:

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

我找到了使用print和split的部分解决方案,以在同一个屏幕上显示所有4个关卡图,但这些要求我要么关闭colorkey,要么在每个绘图上显示它 . 两种方案都不完全令人满意 .

如果我在levelplot中使用layout-option,就像这样:

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

,我得到了所需的布局,有一个大的colorkey,main和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))

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

先感谢您,

-J.P

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()
    

    这使:

    enter image description here

相关问题