R语言实现蜜蜂群图绘制

2020-01-22 13:12:21 浏览数 (2)

前面我们讲过抖动散点图的绘制,今天给大家介绍一个更加普遍的一种抖动散点图叫做蜜蜂群图。首先我们看下需要用到的包:

代码语言: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)

0 人点赞