前面我们讲过抖动散点图的绘制,今天给大家介绍一个更加普遍的一种抖动散点图叫做蜜蜂群图。首先我们看下需要用到的包:
代码语言:javascript复制install.packages("beeswarm")
接下来看下主要的核心函数beeswarm。
其中主要的参数:
Method 主要是指的散点图的样式。Center对称群;另外还有swarm(成群的),hex,square。
spacing 各点之间距离。
Cex 各点的大小。
corral 控制点不超过坐标点的区域,可以结合corralWidth设置坐标位置宽度。超出的部分如果设置omit则会忽略;设置random会随机显示在覆盖的区域。
Priority 点的排布,但是只在method=swarm时可用。其可选的参数包括:ascending(升序),descending(降序),density, random(随机显示) ,none。
Add 是否加在其它绘图之上,比如箱线图上加这个图则设置为TRUE。
Pwcol 设置分组,可以给与不同的颜色显示不同的点。当然,可以支持list设置多个组的不同样本颜色。
Pch 点的形状,可以参考plot对点的设置。
以上函数也就是整个包的核心了,接下来我们直接上实例:
代码语言:javascript复制###基本的单组数据distributions <- list(runif = runif(200,min = -3, max = 3), rnorm = rnorm(200),rlnorm = rlnorm(200, sdlog = 0.5))beeswarm(distributions, col = 2:4, pch=16)
代码语言:javascript复制###多组数据的data(breast) beeswarm(time_survival ~ ER, data = breast, pch = 16, pwcol = 1 as.numeric(event_survival),xlab = "", ylab = "Follow-up time(months)",labels = c("ER neg", "ER pos")) legend("topright", legend = c("Yes","No"), title = "Censored", pch = 16, col = 1:2)
代码语言:javascript复制##每个组独立设置颜色:Dd=1 as.numeric(breast $event_survival)mycol=list() neg=which(Dd==1)pos=which(Dd==2)mycol$neg=Dd[1:length(neg)]mycol$pos=Dd[1:length(pos)] 1data=list() data$neg=breast$time_survival[neg]data$pos=breast$time_survival[pos]beeswarm(data, pch = 16, pwcol = mycol,xlab= "", ylab = "Follow-up time (months)",labels = c("ERneg", "ER pos"))legend("topright", legend = 1:3,title = "Censored", pch = 16, col = 1:3)
另外此包还内置了自己的一个箱线图的绘制函数,和R语言基础的函数名称是一样的boxplot:
其中主要的参数:
Probs 需要显示的值。此处可以利用seq函数获取任何想要展示的值,也就是以直线形式画在图中。
Col 指的线的颜色,可以单一也可以多种一起绘制。
接下来我们主要看下结合beeswarm绘制箱线图,直接进入实例:
代码语言:javascript复制##基础箱线图 beeswarm(len ~ dose, data = ToothGrowth) bxplot(len ~ dose, data = ToothGrowth, add = TRUE)
代码语言:javascript复制###负责箱线图绘制: data(breast) bxplot(time_survival ~ event_survival, data = breast, probs = seq(0, 1,by = 0.1), col = rainbow(10)) beeswarm(time_survival ~ event_survival, data = breast, pch = 21, bg ="green", add = TRUE)