蜂群点图

给你的文本文字美颜—****蜂窝图

一行命令绘图

比如我们想要绘制第一列和第四列之间的图,我们可以直接用beeswarm函数就可以了。

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)

便可以出现下面的图:

image.png

我们来看一下该函数怎么设置输入参数:

1. 确定x轴和y轴,比如这里我们这里输入的为第一列(ER)为x轴和第四列(time_survival)为y轴,中间用~链接,data参数代表数据对象来源,pch代表绘制点的形状,16代表为圆点,pwcol 代表“逐点”绘制点的颜色,为每个数据点指定颜色,pwcol输入的为分类变量的一列,为这一列的每一类指定不同的颜色。Xlab 代表x轴坐标名,ylab代表y轴的坐标名。

添加Legend

为了添加有效的图例,我们可以使用legend函数,来添加legend,使用十分简单,直接在beeswarm函数后面添加就可以了。该图我们是添加到了右上角,

结合boxplot一起绘制美图

我们在看到这些图的时候,很容易想到boxplot,那我们可不可以把二者整合在一起呢?理论上肯定是可以的,我们可以操作一番。


boxplot(time_survival ~ ER, data = breast, 
        outline = FALSE,    
        main = 'boxplot + beeswarm')
beeswarm(time_survival ~ ER, data = breast,
         col = 4, pch = 16,  pwcol = 2 + as.numeric(event_survival), add = TRUE)

便可以得到下面的图形了:注意必须在最后一个绘制的图形参数上添加add=TRUR 参数,否则就不会出现在同一个图像上。


image.png

当然我们也可以先绘制蜂窝图,在绘制boxplot,如下:

beeswarm(time_survival ~ ER, data = breast,
         col = 4, pch = 16, pwcol = 2 + as.numeric(event_survival),
         main = 'beeswarm + bxplot')
bxplot(time_survival ~ ER, data = breast, add = TRUE)
image.png

这个时候需要在boxplot函数后面加上add=TRUE参数。出现的图形如下:

library(beeswarm)
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)



boxplot(time_survival ~ ER, data = breast, 
        outline = FALSE,    
        main = 'boxplot + beeswarm')
beeswarm(time_survival ~ ER, data = breast,
         col = 4, pch = 16,  pwcol = 2 + as.numeric(event_survival), add = TRUE)


beeswarm(time_survival ~ ER, data = breast,
         col = 4, pch = 16, pwcol = 2 + as.numeric(event_survival),
         main = 'beeswarm + bxplot')
bxplot(time_survival ~ ER, data = breast, add = TRUE)

你可能感兴趣的:(蜂群点图)