5

我使用以下代码制作了一个带有 ggplot2 扩展 GGally 的散点矩阵

  ggscatmat(dat2, columns = 2:6, color="car", alpha=0.8) +
  ggtitle("Korrelation") + 
  theme(axis.text.x = element_text(angle=-40, vjust=1, hjust=0, size=10))

现在我的问题是,在这种情况下,我真的不需要密度线图或相关系数。我只想要矩阵中的散点图。有没有办法“删除”其他方面?我无法在文档中找到任何内容。

请原谅我糟糕的英语并感谢您的任何建议或帮助!

带有 ggscatmat {GGally} 的散点矩阵

编辑:我用 ggpairs 找到了一个还不完美的解决方案:

ggpairs(dat2, columns = 2:6, mapping= aes(color=car), 
        upper = "blank",diag = "blank") +
  theme(axis.text.x = element_text(angle=-40, vjust=1, hjust=0, size=10))

但是现在没有传说了,两个标签看起来像情节还没有完全加载:在此处输入图像描述

4

2 回答 2

5

您可以通过弄乱gtable

 removePanels <- function(plot) {

         g <-  ggplotGrob(plot)

         # get panels to remove: upper + diagonal
         ids <- grep("panel", g$layout$name)
         cols <- sqrt(diff(range(ids)) +1)
         remove <- matrix(ids, ncol=cols)
         remove <- remove[upper.tri(remove, diag=TRUE)]

         # remove certain axis
         yax <- grep("axis-l", g$layout$name)[1] # first
         xax <- tail(grep("axis-b", g$layout$name), 1) #last

         # remove cetain strips
        ystrip <- grep("strip-right", g$layout$name)[1]
        xstrip <- tail(grep("strip-top", g$layout$name), 1)

        # remove grobs
        g$grobs[c(remove, xax, yax, ystrip, xstrip)] <- NULL
        g$layout <- g$layout[-c(remove, xax, yax, ystrip, xstrip),]
        g
      }

# draw
library(GGally)
library(ggplot2)
library(grid)

p <- ggscatmat(iris, columns = 1:4, color="Species", alpha=0.8) +
          theme(axis.text.x = element_text(angle=-40, vjust=1, hjust=0, size=10))

grid.newpage()      
grid.draw(removePanels(p))
于 2016-04-20T12:13:12.060 回答
3

按照官方文档,您可以将 的元素设置ggpairs空白。在您的情况下,您可能有兴趣将diag的值更改为diag = "blank" ,如下例所示。

例子

mtcars数据示例中,您可以执行以下操作:

data("mtcars")
require(GGally)
ggpairs(data = mtcars[3:5], diag = "blank")

结果

该代码将生成没有对角线图的所需图表: 无对角线

于 2016-04-20T11:14:25.010 回答