【问题标题】:Correlation pairs plot: different point colors for groups and density scatterplot相关对图:组和密度散点图的不同点颜色
【发布时间】:2020-07-10 17:47:01
【问题描述】:

我想通过它们的相关性来比较不同组(a 和 b)的数据,例如 a1 与 a2 和 a1 与 b2 等。 我正在使用pairs()function 生成相关散点图。

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)

我希望用不同的颜色为散点图点着色,具体取决于它们是在组内还是跨组比较。 ,即在 ai 与 aj 组内进行比较时,我将用红色、蓝色的 bi 与 bj 和紫色的 ai 与 bj 等点着色。

也可以为绘图设置不同颜色的背景。

或者,是否可以像使用 smoothScatter() 或 IDPmisc::iplot() 那样绘制成对密度散点图?

谢谢

【问题讨论】:

    标签: r scatter-plot pairwise


    【解决方案1】:

    您可以使用来自GGallyggpairs 进行高度定制。我敢肯定,如果您查看文档,您会发现可以根据需要进行调整。在这里,我将根据您的要求使用它为点着色。

    但是,对于您的特定用例,您需要将数据框的多个副本与各种 NA 列堆叠在一起,以允许添加着色变量。这只涉及一点额外的代码。

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

    reprex package (v0.3.0) 于 2020-07-10 创建

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-14
      • 2021-04-13
      • 1970-01-01
      • 2019-11-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多