2023-02-02 17:10:14, Calibra 杭州凯莱谱精准医疗检测技术有限公司
ggplot2
代谢组学统计分析的结果要想直观和清晰地呈现出来,制作精美的可视化图是不二之选。由于工具所限,很多朋友看到别人画出的各种美图时经常会羡慕嫉妒恨,但如果你会或正在学习使用R语言,当你知晓R语言中包含的强大绘图功能时,就如同掌握了一把数据可视化的尚方宝剑。
绘图相关的R包浩如烟海,有绘制山峦图的ggridges,有创建树状图的ggdendro,还有描绘相关性的ggcorrplot……这些用途各异的R包其实都是在ggplot2这个包的基础上进行了二次开发。掌握了ggplot2,恰如筑牢了高楼大厦的基石!
接下来,小编就带领大家一窥ggplot2的真容。
01
ggplot2的绘图原理
ggplot2犹如绘画,在画布上一层层叠加线条、颜色。这种一层层输入的命令,使得ggplot2更加灵活,也更易于修改。
ggplot2函数的组成有:
• geom——几何对象:如点、线
• scale——标度:将数据映射到图形空间,比如用形状、颜色来表示不同的数据,能够精确的控制图形的外观
• coord——坐标系:描述数据映射到平面的过程
• layer——图层:每个图层有各自的图形,最后叠加
• facet——分面:控制分组绘图的方法和排列方式
从数据集变为几何对象,ggplot2数据映射的原理如下图:
02
ggplot2的绘图类型
ggplot2提供了很多几何图形,能够轻松绘制气泡图、箱线图、小提琴图等,常用的绘图类型和基础命令见下图:
03
美化图形
在指定图表类型后,还可以根据需要修改,比如调整线条粗细、点的形状、颜色等。
美化ggplot2细节最常用的函数是theme(),具有大量参数,其中四种参数的使用最为广泛:
• element_text():设置基于文本的组件,如标题、子标题等。
• element_line():设置基于线的组件,如轴线,网格线等。
• element_rect():修改基于矩形的组件,如绘图和面板区域的背景。
• element_blank():关闭显示的主题内容。
在RSTUDIO中输入?theme,可以浏览以上参数的具体使用说明,以及theme()的全部功能。
04
实例理解
用一个简单的ketones (酮类)研究数据来展示气泡图和箱形图的绘制。
数据情况
共有pre和post两组,每组十个样本,记录了每个样本ketones的含量。
导入数据,加载ggplot2:
dat<- read.table("C:\\\\Users\\\\user\\\\Desktop\\\\ketones.txt",header = T)library(ggplot2)
绘制气泡图
气泡图与散点图相同,都使用了geom_point(),不过比起散点图,气泡图多了气泡大小这个变量,能够展示更多的信息,也更为美观灵动。
将每个样本的ketones的含量呈现出来,并以此来定义气泡的大小:
ggplot(dat, aes(x = Sample,y = ketones,size = ketones)) + geom_point(colour = "steelblue")
增加分组信息,按照不同组别上色:
ggplot(dat,aes(x = Sample,y = ketones,size = ketones,color = Group)) + geom_point()
绘制箱形图
为了更清晰地展示各个组的ketones含量,箱形图是个不错的选择:
ggplot(dat,aes(Group,ketones,fill = Group)) +geom_boxplot(width = 0.5)
但是图片底色是灰色,而文章里高大上的图片往往是白色底色的,不妨试试theme_classic()。
细心的朋友应该发现了,按照英文顺序,“post”在“pre”前面,不过人们的习惯是把“pre”放在前面,这该如何调整呢?可以将分组设为“factor”,自定义顺序哦~
dat$Group<-factor(dat$Group,levels = c("pre","post"))ggplot(dat,aes(Group,ketones,fill = Group)) + geom_boxplot(width = 0.5) + theme_classic()
差异比较
想看看pre组、post组的ketones含量差异情况?ggsignif来帮忙!
library(ggsignif)
先定义好要比较的组别:
compare_pair = list(c("pre","post"))
在箱形图里引入散点图,不仅可以展示整组的表达情况,还可以清楚地看见每个样本的表达情况:
ggplot(dat,aes(Group,ketones,fill = Group)) +geom_boxplot(width = 0.5) +theme_classic() +geom_signif(comparisons = compare_pair, test = t.test, step_increase = 0.2, map_signif_level = F) +geom_point(position = position_jitterdodge())
进一步美化图片,可以自定义颜色,设置字体为常用的“Times New Roman”
ggplot(dat,aes(Group,ketones,fill = Group)) +geom_boxplot(width = 0.5) + theme_classic() +geom_signif(comparisons = compare_pair, test = t.test, step_increase = 0.2, map_signif_level=F) +geom_point(position = position_jitterdodge()) +scale_fill_manual(values = c("#8B0000","#F4A460")) +theme(text = element_text(size = 14,family = "serif"))
以上是用简单数据做出的基础的箱形图和气泡图,帮助大家掌握ggplot2。当遇到真实、复杂的数据,ggplot2的功效就更大啦,能够做出更吸引眼球的箱形图和气泡图,一起来欣赏吧!
欲知更多数据可视化秘籍,
07-01 英斯特朗
连载 | 药物一致性评价与粒度分析(三)07-01 欧美克仪器
【仪器百科】LS-909丨干湿二合一激光粒度分析仪07-01 欧美克仪器
标准物质解决方案 | PFASs(全氟及多氟化合物)06-29
第九期阿尔塔有约 | 环境专题【新污染物:PFAS】技术研讨会精彩回顾及提问解答06-29
“绿色技术范式”,分析化学未来发展方向——访中国分析测试协会副理事长、辽宁省分析科学研究院原院长刘成雁教授06-29 转载仪器信息网
华西医院-标准型数显脑立体定位仪、双通道体温维持仪、体式显微镜安装完成06-29 迈越生物
科鉴检测助力2家仪器企业获得首批产品可靠性认证证书06-28 科鉴检测
德国耶拿:锂电池生命周期分析解决方案06-28 德国耶拿
AI已来!生命科学本科教学如何紧跟技术浪潮06-28 Opentrons
盛瀚售后,五星级服务的秘诀是什么?06-28 SHINE
专为汽车制造商打造的柔性解决方案——实现制程控制06-28
西北工业大学-脑立体定位仪安装完成06-28 迈越生物
会议邀请 | 第九届海上检验医师论坛06-28
卓立要闻 | 创新发展ing…6月卓立“大事小情”速览06-28 光电行业都会关注
打造信任合作伙伴!2024年度卓立汉光客户满意度调查开启06-28 光电行业都会关注
如何挑选适用于三阶光学非线性的测量系统?Z扫描测量系统来助力!06-28 光电行业都会关注
招聘启事—中国科学院沈阳自动化研究所微纳光学测量表征技术课题组06-28 光电行业都会关注
谱育科技作为主要完成方 荣获2023年度国家科学技术进步一等奖和二等奖06-28 点击关注→
仪器原理丨顶空仪与吹扫捕集仪科普小知识06-28 天美色谱