我想通过它们的相关性比较不同的数据组(a和b),例如a1 vs a2和a1 vs b2等。
我正在使用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)
我希望根据散点图在组内或组间比较中使用不同的颜色进行着色。 ,即在ai与aj组之间进行比较时,我将用红色,蓝色的bi与bj以及紫色的ai与bj着色点。
也可以为绘图提供不同颜色的背景。
或者是否有绘制成对密度散点图的方法,例如使用smoothScatter()或IDPmisc :: iplot()吗?
谢谢
答案 0 :(得分:1)
您可以使用ggpairs
中的GGally
获得高度定制。我敢肯定,如果您查看这些文档,就会发现您可以根据需要对其进行调整。在这里,我将根据您的要求使用它为点着色。
但是对于特定的用例,您将需要将数据框的多个副本与不同的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创建