gpt4 book ai didi

r - 如何使绘图上的点大小与 p 值成比例?

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

我有使用命令 cmdscale 提供或生成的 p 值、x 值和 y 值的向量。在距离矩阵上。简单地用 plot(x,y) 绘制坐标工作正常,但我希望这些点的大小与其 p 值成比例(较小的 p 值意味着较大的点)。我想不出一种方法来做到这一点,正在寻找建议。我想过标准化 p 值并按某个因子缩放——plot(..., cex=2*normalized) ——但这行不通。下面我已经转储了一些我正在使用的示例值以实现可重复性。

> dput(pValues)
c(4.48e-14, 1.66e-12, 2.53e-08, 8.57e-08, 3.4e-07, 5.68e-07,
9.92e-07, 1.08e-06, 2.82e-06, 1.81e-05, 0.000133, 0.00053, 0.000616,
0.000846, 0.000947, 0.001110537, 0.001110537, 0.001505779, 0.001573054,
0.001573054, 0.002112306, 0.002308863, 0.003121497, 0.003121497,
0.003121497, 0.003121497, 0.003121497, 0.003121497, 0.003121497,
0.003121497, 0.003177736, 0.004723347, 0.005004768, 0.005301549,
1.86e-17, 9.18e-17, 2.16e-16, 8.23e-16, 9.2e-16, 1.28e-15, 1.38e-15,
2.59e-15, 6.43e-15, 6.43e-15, 8.42e-15, 1.21e-14, 1.02e-13, 7.58e-13,
1.53e-12, 1.96e-11)


> dput(x)
c(-0.546606289027691, -0.513646680083475, 0.157100976250898,
0.109447441578375, 0.109447441578375, 0.104451507558839, 0.104451507558839,
0.109447441578375, 0.175507893375115, -0.14664445744836, 0.0543475836486623,
0.0557408040609083, 0.0893466913878634, 0.0893466913878634, 0.142438485025367,
0.0470980043880961, -0.0221917747418056, 0.109447441578375, 0.0362416205348296,
0.0470980043880961, 0.0362416205348296, 0.0347865097394601, 0.0391497309324339,
0.0413674642703439, 0.0667384023198892, 0.0461182424640277, 0.0413674642703439,
0.0667384023198892, 0.0461182424640277, 0.0475891023261346, 0.0893466913878634,
0.0764742527259463, 0.0422421029990655, -0.0221917747418056,
-0.510082195428624, -0.510082195428624, -0.510082195428624, -0.510082195428624,
0.53984552027647, 0.457352428403424, -0.510082195428624, -0.510082195428624,
0.476216399097293, 0.476216399097293, -0.510082195428624, 0.297997535161347,
-0.510082195428624, 0.397117197655551, 0.440730282360781, 0.0312250127868402)


> dput(y)
c(0.107461316099316, 0.156755909792581, -0.166842986685387,
-0.141978234324384, -0.141978234324384, -0.0687959347159215,
-0.0687959347159215, -0.141978234324384, -0.142554658469002,
-0.0395153544691704, -0.0576565915449701, -0.0936541502757846,
-0.0438034590304964, -0.0438034590304964, -0.190330058396921,
-0.0329359077881266, -0.0116066646384657, -0.141978234324384,
-0.0714188307783769, -0.0329359077881266, -0.0714188307783769,
-0.054867626805721, -0.0112558858117774, -0.0166800568953671,
-0.0274480805166001, -0.0331407851151761, -0.0166800568953671,
-0.0274480805166001, -0.0331407851151761, -0.00455654056913195,
-0.0438034590304963, -0.0148236474766705, -0.130181815402346,
-0.0116066646384657, 0.0838569446695995, 0.0838569446695995,
0.0838569446695995, 0.0838569446695995, 0.0372937912551249, 0.555328846358372,
0.0838569446695995, 0.0838569446695995, 0.521415820920117, 0.521415820920117,
0.0838569446695994, -0.506985517718071, 0.0838569446695995, -0.324019743520653,
0.421305271998988, -0.0312119222707089)

最佳答案

我认为 log10 也是最好的 ;)

#_________ installing Packages
#install.packages("ggplot2", dependencies = TRUE)
#install.packages("gridExtra", dependencies = TRUE)

#--------- loading lib
library("ggplot2")
library("gridExtra")

#Saving in png
png("ggplot2sizing.png",height=400,width=850)

df=data.frame(dOut_x,dOut_y,d_pvalue)
#TomNash proposal
grO <-ggplot(data=df) + aes(x=dOut_x,y=dOut_y, size=-log(d_pvalue)) + geom_point(alpha=0.5, col='blue')+labs(title = "*-log: basic*", plot.title = element_text(hjust = 0))

#Graph2 with scale_color_gradien -log
grTw <-ggplot(data=df, aes(x=dOut_x,y=dOut_y, size=-log(d_pvalue), color=dpuout_y))+geom_point(alpha=0.25)+scale_colour_gradientn(colours=rainbow(4))+labs(title = "*-log*", plot.title = element_text(hjust = 0))

#Graph3 with scale_color_gradien :: log10
grTh <-ggplot(data=df, aes(x=dOut_x,y=dOut_y, size=log10(d_pvalue), color=dpuout_y))+geom_point(alpha=0.25)+scale_colour_gradientn(colours=rainbow(4))+labs(title = "*log10*", plot.title = element_text(hjust = 0))

#Draw it all
grid.arrange(grO, grTw, grTh, ncol=3, top="Stack*R: ggplot2-Sizing")
dev.off()

enter image description here

希望能有所帮助。
祝你好运。

关于r - 如何使绘图上的点大小与 p 值成比例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38310192/

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