Как создать каплю зависимости в октябре

Вы не используете wrap правильно - см. виньетку для деталей . Также для диагонали вам теперь нужно использовать функцию barDiag (но ggpairs дает очень полезные ошибки, чтобы сказать это)

Итак, для вашего примера мы можем изменить colour точек в нижние панели и fill баров ниже

library(GGally)
library(ggplot2)
ggpairs(swiss[1:3], 
        lower=list(continuous=wrap("smooth", colour="blue")),
        diag=list(continuous=wrap("barDiag", fill="blue")))

Однако, поскольку цвет гладкой жестко закодирован (см. ggally_smooth), чтобы изменить свой цвет, вам необходимо определить свои собственные функции для передачи. Таким образом, отсюда

my_fn <- function(data, mapping, pts=list(), smt=list(), ...){
              ggplot(data = data, mapping = mapping, ...) + 
                         do.call(geom_point, pts) +
                         do.call(geom_smooth, smt) 
                 }

# Plot 
ggpairs(swiss[1:4], 
        lower = list(continuous = 
                       wrap(my_fn,
                            pts=list(size=2, colour="red"), 
                            smt=list(method="lm", se=F, size=5, colour="blue"))),
                     diag=list(continuous=wrap("barDiag", fill="blue")))

Аналогичным образом, это способ определить новую верхнюю корреляционную функцию (похожую на то, что у вас есть)

cor_fun <- function(data, mapping, method="pearson", ndp=2, sz=5, stars=TRUE, ...){

    data <- na.omit(data[,c(as.character(mapping$x), as.character(mapping$y))])

    x <- data[,as.character(mapping$x)]
    y <- data[,as.character(mapping$y)]

    corr <- cor.test(x, y, method=method)
    est <- corr$estimate
    lb.size <- sz* abs(est) 

    if(stars){
      stars <- c("***", "**", "*", "")[findInterval(corr$p.value, c(0, 0.001, 0.01, 0.05, 1))]
      lbl <- paste0(round(est, ndp), stars)
    }else{
      lbl <- round(est, ndp)
    }

    ggplot(data=data, mapping=mapping) + 
      annotate("text", x=mean(x), y=mean(y), label=lbl, size=lb.size,...)+
      theme(panel.grid = element_blank())
  }


ggpairs(swiss, 
        lower=list(continuous=wrap("smooth", colour="blue")),
        diag=list(continuous=wrap("barDiag", fill="blue")),
        upper=list(continuous=cor_fun))

0
задан Dinesh Anuruddha 20 March 2019 в 09:54
поделиться

0 ответов

Другие вопросы по тегам:

Похожие вопросы: