2021-08-27 02:22:06, 多层组学定制服务 上海欧易生物医学科技有限公司
点击上方“蓝色字体”关注我们
蛋白组学、代谢组学服务专家
小荷才露
箱线图、小提琴图和蜂窝图,想必已经很常见了,之前小鹿也介绍了很多(请戳【情人节】R语言—小提琴图的浪漫邂逅)。今天,分享一个新型可视化图--云雨图,那先看下效果图感受下吧~
云雨图,顾名思义,像云和雨一样的图。由两个部分组成:上图像云,本质上是小提琴的一半;下图像雨,本质上是蜂窝图的一半,主要用于数据分布的展示。那这样的图如何绘制的?跟小编一起学习吧~
小试牛刀
今天,小编介绍两种方法绘制云雨图,让大家充分学习,并上手自己绘制。
第一种,用ggplot扩展包gghalves。以iris数据集为例:
# 加载依赖包,如未安装,请先安装,如上代码。library(gghalves)library(tidyverse)# Species因子化,后续作图需要iris$Species <- iris$Species %>% factor(.,levels=unique(.))head(iris)# Sepal.Length Sepal.Width Petal.Length Petal.Width Species# 1 5.1 3.5 1.4 0.2 setosa# 2 4.9 3.0 1.4 0.2 setosa# 3 4.7 3.2 1.3 0.2 setosa# 4 4.6 3.1 1.5 0.2 setosa# 5 5.0 3.6 1.4 0.2 setosa# 6 5.4 3.9 1.7 0.4 setosa
向右滑动查看更多
绘制云雨图,需要用到gghalves的两个函数,geom_half_violin()和geom_half_dotplot(),分别绘制“云”和“雨”。
# 先绘制小提琴的一半ggplot2::ggplot(iris , aes(x = Species, y = Sepal.Length, fill = Species))+gghalves::geom_half_violin(aes(fill = Species),position = position_nudge(x = .15, y = 0),adjust=1.5, trim=FALSE,colour=NA, side = ''r'')
向右滑动查看更多
# 再绘制蜂窝图的部分ggplot2::ggplot(iris , aes(x = Species, y = Sepal.Length, fill = Species))+gghalves::geom_half_violin(aes(fill = Species),position = position_nudge(x = .15, y = 0),adjust=1.5, trim=FALSE,colour=NA, side = ''r'') +gghalves::geom_half_dotplot(aes(fill = Species), method="histodot", stackdir="down",dotsize = 0.55, position=position_nudge(x = .15, y = 0),binwidth = 0.15, colour = NA)
向右滑动查看更多
# 最后旋转坐标ggplot2::ggplot(iris , aes(x = Species, y = Sepal.Length, fill = Species))+gghalves::geom_half_violin(aes(fill = Species),position = position_nudge(x = .15, y = 0),adjust=1.5, trim=FALSE,colour=NA, side = ''r'') +gghalves::geom_half_dotplot(aes(fill = Species), method="histodot", stackdir="down",dotsize = 0.55, position=position_nudge(x = .15, y = 0),binwidth = 0.15, colour = NA) +ggplot2::coord_flip() +ggthemes::theme_base() # 换一个主题,符合科研风格。需安装ggthemes包
向右滑动查看更多
那么,这样就可得到前言例图啦,很简单有没有。
再介绍一种,更简单的。利用see包来绘制,包里有个函数geom_violindot(...),绘制云雨图一步到位。
# 安装see包library(see)p <- ggplot2::ggplot(iris, aes(x = Species,y =Sepal.Length,fill = Species)) +see::geom_violindot(color = NA, #去除小提琴边框dots_color = NA, #去除圆点边框dots_size = 0.5, #圆点大小binwidth = 0.15, #窗口bin的宽度scale="area", #云图以“面积”来缩放,还有"count" or "width"trim = F #是否过滤头尾数据,默认为TRUE) +ggthemes::theme_base()+ #换主题ggplot2::coord_flip()+ #旋转换坐标轴see::scale_fill_material() #修改填充颜色
向右滑动查看更多
这样子的图,是不是有点云雨图的味道啦~~
小巧微琢
由于gghalves和see包都是ggplot的扩展包,返回的结果均为ggplot对象,这在对后续的图形优化、多图组合上,有很大的便利性。比如,我们需要做不同组数据之间的比较分析,那该怎么办呢?莫慌,使用ggsignif包的geom_signif()函数就能轻松搞定,如下:
# 安装ggsigniflibrary(ggsignif)enhence_p <- p + ggsignif::geom_signif(comparisons = list(c("versicolor", "setosa"),c("versicolor", "virginica"),c("setosa", "virginica")), # 设置比较组y_position = c(8.0, 8.4, 8.8), # 设置显著性标志所在的y轴坐标map_signif_level = c("***" = 0.001, "**" = 0.01, "*" = 0.05)) # 匹配显著性程度标识(星号*)print(enhence_p)
向右滑动查看更多
另外,多图拼接也是很方便,用到patchwork包来实现。这里将上述两图进行拼接。
## 安装patchworklibrary(patchwork)multi_p <- p + see::theme_modern() & enhence_p + see::theme_modern()multi_p# 下面写法也可,并对分页有更多控制p1 <- p + see::theme_modern(); p2 <- enhence_p + see::theme_modern()list(p1, p2) %>% patchwork::wrap_plots(., ncol=2)
向右滑动查看更多
除此之外,我们可能需要进一步美化组合图,则需要对图形元素进行更多修改,如左图的legend有点多余,右图的Y轴坐标和坐标名也是多余的,这个时候就需要进行删除。解决方案就是可以利用ggplot2::theme()进行进一步精修,这里由于篇幅,不做展开了。如果各位看官老师需要了解,请在文末留言,后期还有更多大家想看的操作分享哦~
意犹未尽
前段时间,小编在做网红产品空间代谢组和空间转录组联合分析的研发工作时,需要展现切片样本全区域高表达代谢物的分布情况,正好也用到了云雨图,范例如下:
# 由于函数整合到sce对象中,仅展示最终代码crplot <- cloudrainplot(sce, # sce为SingleCellExperiment object or dataframedots_color = ggplot2::alpha("grey50", 0),dots_size = 1.5, binwidth = 20, scale="width")crplot
数据可视效果还是不错的哟!其实,数据比较大的时候,作出的图有点像山脉图,这个后期小鹿会继续分享的~~
好了,这期分享就到这里,下期再见!各位看官有什么想学习或了解的,数据分析、可视化或生信组学方向都可后台留言我们哟~
文末看点 鹿明生物
上海鹿明生物科技有限公司多年来,一直专注于生命科学和生命技术领域,是国内早期开展以蛋白组和代谢组为基础的多层组学整合实验与分析的团队。
同时,鹿明生物线上学习平台易明学院也拥有众多生信教程,欢迎访问:https://www.yimingxueyuan.com/
猜你还想看
◆生信课程:这个R包不太冷系列五——降维分析
◆生信课程:这种图竟比条形图、箱线图和抖动图展现度更优?
◆生信课程:手把手教你如何从iprox上自动批量下载原始数据
◆生信课程:这个分析不太难系列(一)——方差分析
◆生信课程:一行代码,轻松绘制动态关系网络图(Jaal 库)
◆生信课程:我要如何才能拯救你!我的论文!我的实验数据!
END
段小前 撰文
欢迎转发到朋友圈
本文系鹿明生物原创
转载请注明本文转自鹿明生物
我知道你在看哟
点“阅读原文”了解更多
04-10 小 M
产品试用 | 先试一下!MCE 类器官培养基,是谁还没→薅羊毛04-10 小 M
激酶家族:从分类到关键靶点,一文读懂!04-10 小 M
以象科技-高光谱采集系列 | 布料HL27053高光谱采集04-10 以象科技
特色技术 ︳燃烧离子色谱法助力工业纺织品中的可萃取有机氟(EOF)含量测定04-09 创新中心
聚焦应用,共话未来 I 岛津LabTotal事业部张家界技术交流会圆满落幕04-09 LabTotal事业部
岛津津智(LabTotal Smart)系列产品 | 溶剂效应消除器04-09 LabTotal事业部
岛津透射型衍射光栅闪亮登场04-09 经营企划部
重磅福利 | LCMS-80XX系列签约,送服务!04-09 LabTotal事业部
Peak微课堂 |告别氦气依赖,氢气方案如何引领未来?04-09 毕克气体
以象科技-高光谱采集系列 | 布料HL27119高光谱采集04-09 以象科技
CTO峰会群英荟2 | 吕圭源院长4月24日深度开讲:循证,让健康产品更有底气!04-08 Hunter
CTO峰会群英荟3 | 天丰生物段子卿博士:递送创新+科学循证,抗衰新思路!04-08 Hunter
圆满收官 | 高通量蛋白质组学与数据分析培训班【北大生科院站】04-08
材料研发|汇像带您迈入“AI+自动化”数字工厂新纪元04-08 汇像科技XImaging
邀请函|新品亮相,国仪量子与您相约第35届中国化学会年会04-08 CIQTEK
培训通知|波谱校园行首站启航!华南师范大学站即将开启04-08 CIQTEK
邀请函|新品亮相,国仪量子与您相约中国晶体学会第三届陶瓷青年学术会议暨晶态复合材料研讨会04-08 CIQTEK
展会预告 | 赛恩科仪受邀参与第十届全国磁性材料与器件大会04-08 赛恩科仪
【颗粒攻略】破解高粘粉末检测难题:LS13320XR精准解析锰酸锂粒径分布,助力电池性能跃升04-08 小贝











