5

このようなものを作成したい

library(lattice)
splom(~iris[1:4], groups = Species, data = iris,
      panel=function(x,y,...) {
        panel.abline(0,1)
        panel.superpose(x,y,...)
      })

library(ggplot2)
library(gridExtra)
library(GGally)
ggpairs(iris,columns=1:4,colour="Species") +
  geom_abline(intercept=0,slope=1)

要素を使用geom_ablineすると、エラーが発生します(「二項演算子への数値以外の引数」)。

どうすればそれを機能させることができますか?

4

2 に答える 2

3

カスタム関数を使用して ggpairs プロットをカスタマイズできます。これは、問題がスケールであったこの質問のデータですが、質問に対して同様のことを行うことができます

df <- read.table("test.txt")

upperfun <- function(data,mapping){
  ggplot(data = data, mapping = mapping)+
    geom_density2d()+
    scale_x_continuous(limits = c(-1.5,1.5))+
    scale_y_continuous(limits = c(-1.5,1.5))
}   

lowerfun <- function(data,mapping){
  ggplot(data = data, mapping = mapping)+
    geom_point()+
    scale_x_continuous(limits = c(-1.5,1.5))+
    scale_y_continuous(limits = c(-1.5,1.5))
}  


ggpairs(df,upper = list(continuous = wrap(upperfun)),
        lower = list(continuous = wrap(lowerfun)))      # Note: lower = continuous
于 2018-04-24T15:05:56.520 に答える