最近经常要画好看的盒形图,还要在上面加入散点,所以总结了两个方法。

第一种方法是,利用beeswarm函数:

library(beeswarm)  beeswarm  蜜蜂群图

http://rgm3.lab.nig.ac.jp/RGM/r_function?p=beeswarm&f=beeswarm

可以结合盒形图展示。

有多种布局方法method = c("swarm", "center", "hex", "square"),通过spacing = 1来控制点的密集程度

另一个方法是,利用jitter函数加入随机波动:

以下是代码:

先按照Group1的顺序画好盒形图,加入断轴,

再按照Group1排序(1、2、3组)加入波动,波动的变量xx就是新的横坐标,然后再画散点图就行了。

图中因为有些点多有些点少,画散点的时候我按照点多的颜色先画的原则(避免点少的颜色被覆盖看不到了),所以最后画点又排了次序。

boxplot(Ratio~Group1,data=dat,ylab="Mapped Reads Ratio(%)",outline=F,names=c("NGT","IGT","T2D"),ylim=c(57,85))
library(plotrix)
axis.break(2,57.5)

num=table(dat[,"Group1"])
xx=jitter(c(rep(1,num[1]), rep(2, num[2]), rep(3,num[3])),amount=0.3)#加入波动
dat2=dat[order(dat[,"Group1"]),]
dat3=cbind(dat2,xx)
dat4=dat3[order(dat3[,"Group2"]),]#按照国家排序画图
points(dat4[,7],dat4[,2],col=rainbow(11)[(dat4[,"Group2"]+11)%%11+1],pch=16)

dat5=dat[order(dat[,"Group2"]),]
leg=unique(cbind(as.vector(dat5[,4]),dat5[,6]))
legend("bottomright", as.vector(leg[,1]), col=rainbow(11)[(seq(1,11)+11)%%11+1],pch = 16, ncol = 3, cex =1)

【R作图】蜜蜂群图beeswarm和jitter的使用的更多相关文章

  1. 【R作图】lattice包,画多个分布柱形图,hist图纵轴转换为百分比

    一开始用lattice包,感觉在多元数据的可视化方面,确实做得非常好.各种函数,可以实现任何想要实现的展示. barchart(y ~ x) y对x的直方图 bwplot(y ~ x) 盒形图 den ...

  2. R语言-画线图

    R语言分高水平作图函数和低水平作图函数 高水平作图函数:可以独立绘图,例如plot() 低水平作图函数:必须先运行高水平作图函数绘图,然后再加画在已有的图上面 第一种方法:plot()函数 > ...

  3. R语言学习 - 热图绘制heatmap

    生成测试数据 绘图首先需要数据.通过生成一堆的向量,转换为矩阵,得到想要的数据. data <- c(1:6, 6:1, 6:1, 1:6, (6:1)/10, (1:6)/10, (1:6)/ ...

  4. R作图

    R一般的散点图:plot() 折线图:plot()   lines() 柱状图  barplot() 箱子图  boxplot() 直方图:hist() 热力图:heatmap 画地图的:拓展包  m ...

  5. R语言绘制QQ图

    无论是直方图还是经验分布图,要从比较上鉴别样本是否处近似于某种类型的分布是困难的 QQ图可以帮我们鉴别样本的分布是否近似于某种类型的分布 R语言,代码如下: > qqnorm(w);qqline ...

  6. R语言画棒状图(bar chart)和误差棒(error bar)

    假设我们现在有CC,CG,GG三种基因型及三种基因型对应的表型,我们现在想要画出不同的基因型对应表型的棒状图及误差棒.整个命令最重要的就是最后一句了,用arrows函数画误差棒.用到的R语言如下: d ...

  7. R语言绘制花瓣图flower plot

    R语言中有很多现成的R包,可以绘制venn图,但是最多支持5组,当组别数大于5时,venn图即使能够画出来,看上去也非常复杂,不够直观: 在实际的数据分析中,组别大于5的情况还是经常遇到的,这是就可以 ...

  8. 使用ggbio在R中制作弦图

    分享一个制作弦图的R包:ggbio. 以下是一个简单的使用实例,效果图和代码如下. library(GenomicRanges) set.seed(1) N <- 100 gr <- GR ...

  9. matplotlib作图——plot() 线图

    线图 #定义 matplotlib.pyplot.plot() plot([x], y, [fmt], data=None, **kwargs) plot([x], y, [fmt], [x2], y ...

随机推荐

  1. L3-016 二叉搜索树的结构 (30 分) 二叉树

    二叉搜索树或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值:若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值:它的左.右子树也分别 ...

  2. POJ 3384 放地毯【半平面交】

    <题目链接> 题目大意: 给出一个凸多边形的房间,根据风水要求,把两个圆形地毯铺在房间里,不能折叠,不能切割,可以重叠.问最多能覆盖多大空间,输出两个地毯的圆心坐标.多组解输出其中一个,题 ...

  3. Nginx 部署、反向代理配置、负载均衡

    Nginx 部署.反向代理配置.负载均衡 最近我们的angular项目部署,我们采用的的是Nginx,下面对Nginx做一个简单的介绍. 为什么选择Nginx 轻:相比于Apache,同样的web服务 ...

  4. 如何下载离线Adobe软件教程

    在如今好多软件官网上面都不支持离线安装包下载,仅仅只留下一个在线安装,那么面对这种情况我们应该如何去做?在这里我先提供一个常用的PDF阅读器离线安装包下载地址,在文章后面会有教程. Adobe Acr ...

  5. go语言爬虫 - TapTap用户都喜欢些什么游戏

    前面的废话 说到爬虫,首先想到的当然是python~ 它在机器学习.爬虫数据分析领域可谓是如日中天,十分热门.但我最近在学习go语言,所以就用go写了 TapTap社区 这是一个高品质的游戏分享社区, ...

  6. 3d模型 手办制作 3d model manual production

    3d模型 手办制作 3d model manual production 作者:韩梦飞沙 Author:han_meng_fei_sha 邮箱:313134555@qq.com E-mail: 313 ...

  7. C语言---斐波那契问题

      最近学习了一个叫递归的概念,里面最著名的一个例子就是斐波那契问题,觉得很有意思,就来实现一下: 什么是斐波那契数列   斐波那契数列,又称黄金分割数列,值得这样一个数列:0.1.1.3.5.8.1 ...

  8. 项目冲刺 Seventh

    Seventh Sprint 1.各个成员今日完成的任务 蔡振翼:编写博客 谢孟轩:消息功能的实现,各页面与功能的调试优化 林凯:优化注册判断逻辑,整合相关代码 肖志豪:帮助组员 吴文清:完成管理员信 ...

  9. Windows 文件名的书写规范

    下面是不能用于文件名的: / \ : * " < > | windows系统下文件名长度为: 255个英文字符(DOS下8.3格式),包括文件名和扩展名在内,或者是255/2=1 ...

  10. bootStrap中的ul导航3-垂直导航

    <div class="container"> <br/> <ul class="nav nav-pills nav-stacked&quo ...