График корреляционных пар: разные цвета точек для групп и график рассеяния плотности - PullRequest
0 голосов
/ 10 июля 2020

Я хочу сравнить разные группы (a и b) данных по их корреляции, например a1 vs a2 и a1 vs b2 et c. Я создаю диаграмму рассеяния корреляции с помощью функции pairs().

myData.df <- data.frame(a1=rnorm(100),a2=rnorm(100),b1=rnorm(100),b2=rnorm(100))
upper.panel<-function(x, y){
  points(x,y, pch=20,col=alpha("mediumorchid4", 0.4))
  lmod <- lm(y~x)
  modsum <- summary(lmod)
  r2 <- modsum$adj.r.squared
  r2label = bquote(italic(R)^2 == .(format(r2, digits = 2)))
  
  usr <- par("usr")
  on.exit(par(usr))
  par(usr = c(0, 1, 0, 1))
  text(0.5, 0.9, r2label)
}
pairs(myData.df, lower.panel = NULL, upper.panel = upper.panel)

I wi sh, чтобы раскрасить точки диаграммы рассеяния разными цветами в зависимости от того, находятся ли они внутри группы или между группами сравнений. , т.е. при сравнении внутри групп ai vs aj, тогда я закрашу точки красным, bi vs bj - синим, а ai vs bj - фиолетовым et c.

Также нормально иметь другой цвет фоны для графиков тоже.

В качестве альтернативы есть ли способ нарисовать парные диаграммы рассеяния плотности, например, с помощью smoothScatter () или IDPmis c :: iplot ()?

Спасибо

1 Ответ

1 голос
/ 10 июля 2020

Вы можете получить высокую степень кастомизации с ggpairs из GGally. Я уверен, что если вы посмотрите документацию, то обнаружите, что можете адаптировать ее под свои нужды. Здесь я буду использовать его, чтобы раскрасить точки в соответствии с вашим запросом. для добавления переменной окраски. Это требует лишь небольшого дополнительного кода.

library(GGally)

myData.df <- data.frame(a1 = rnorm(100), a2 = rnorm(100), b1 = rnorm(100), b2 = rnorm(100))

plot_data <- do.call(rbind, lapply(seq(ncol(combn(ncol(myData.df), 2))),
                                   function(i) 
                                   { 
                                      myData.df[combn(4, 2)[, i]] <- NA
                                      myData.df$col <- letters[i]
                                      myData.df
                                    }))

ggpairs(plot_data, 1:4, mapping = aes(color = col)) + 
  scale_color_manual(values = c("blue", rep("purple", 4), "red")) 

Created on 2020-07-10 by the пакет реплекс (v0.3.0)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...