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

しかし、もはや凡例はなく、プロットがまだ完全に読み込まれていないように見える 2 つのラベルがあります。ここに画像の説明を入力

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 に答える