gpt4 book ai didi

r - 几个分布的成对图形比较

转载 作者:行者123 更新时间:2023-12-04 10:10:00 24 4
gpt4 key购买 nike

这是上一个问题的编辑版本。
我们得到了一个 m × n 的表,其中包含 m 个变量(基因等)上的 n 个观察(样本),我们正在研究每对观察之间变量的行为 - 例如,两个观察具有最高的正面或负面相关性。为此,我在 Stadler 等人中看到了一个很棒的图表。自然论文(2011):
enter image description here
这里它可以是要使用的示例数据集。

m <- 1000
samples <- data.frame(unif1 = runif(m), unif2 = runif(m, 1, 2), norm1 = rnorm(m),
norm2 = rnorm(m, 1), norm3 = rnorm(m, 0, 5))
我已经测试过 gpairs(samples)gpairs产生这个。这是一个好的开始,但无法将相关系数放在右上角,也无法在下角放置密度图:
enter image description here
接下来我用了 ggpairs(samples, lower=list(continuous="density"))GGally (感谢@LucianoSelzer 在下面发表评论)。现在我们在上角和下角有相关性,但我们缺少对角线条形图,并且密度图不是热图形状。
enter image description here
有什么想法可以使更接近所需的图片(第一张)?

最佳答案

您可以尝试组合几种不同的绘图方法并组合结果。这是一个示例,可以相应地进行调整:

cors<-round(cor(samples),2) #correlations

# make layout for plot layout
laymat<-diag(1:5) #histograms
laymat[upper.tri(laymat)]<-6:15 #correlations
laymat[lower.tri(laymat)]<-16:25 #heatmaps

layout(laymat) #define layout using laymat

par(mar=c(2,2,2,2)) #define marginals etc.

# Draw histograms, tweak arguments of hist to make nicer figures
for(i in 1:5)
hist(samples[,i],main=names(samples)[i])

# Write correlations to upper diagonal part of the graph
# Again, tweak accordingly
for(i in 1:4)
for(j in (i+1):5){
plot(-1:1,-1:1, type = "n",xlab="",ylab="",xaxt="n",yaxt="n")
text(x=0,y=0,labels=paste(cors[i,j]),cex=2)
}

# Plot heatmaps, here I use kde2d function for density estimation
# image function for generating heatmaps
library(MASS)
for(i in 2:5)
for(j in 1:(i-1)){
k <- kde2d(samples[,i],samples[,j])
image(k,col=heat.colors(1000))
}

编辑:更正了最后一个循环的索引。
pairwise plot

关于r - 几个分布的成对图形比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15506850/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com