干货分享 | 给散点图镶上“小花边”
发布时间 2022-06-28
最常用也是最万能的绘图R包。
用于给散点图添加边际图。
hexbin包的hexbin函数应用于数据量太大、且有数据重叠、普通散点图可视化效果变差的情况。
install.packages("ggExtra") install.packages("hexbin") library(ggExtra) library(hexbin) library(ggplot2)
本文数据以R自带的diamonds数据为例,散点图的基本语法如下,数据集、X轴、Y轴,最后是散点层。
p <- ggplot(data=diamonds, mapping = aes(x = carat,y = price)) + geom_point(shape=19 ,alpha = .5,size=1.5)
一个最基础不加任何修饰的散点图就绘制好了,接下来要做的工作就是思考如何美化它。当数据量特别大,散点都堆叠在一起,很多区域很难辨识,我们可以考虑使用hexbin函数绘制高密度散点图。hexbin函数将二元变量的封箱放到六边形单元格中,且通过图例颜色标定每一个区域数据点的数量颜色越深则散点密度越大。
p <- ggplot(data=diamonds,mapping = aes(x = carat,y = price)) + geom_point(shape=19 ,alpha = .01,size=0.5)+ stat_binhex()
调整图片的细节
p <- ggplot(data=diamonds,mapping = aes(x = carat,y = price)) + geom_point(shape=19 ,alpha = .01,size=0.5)+ stat_binhex()+ scale_fill_gradient(low = "lightblue", high = "red",limits =c(0,6000)) + #设置映射颜色和图例尺度 theme_bw() + theme( legend.position = "left", #调整图例的位置 axis.title = element_text( family = "sans",size = 17,face = "bold",color = "gray25"),#设置X、Y轴标题字体、大小以及颜色 axis.text = element_text( family = "sans",size = 15,face = "bold"), #设置X、Y轴标签字体、大小以及颜色 title = element_text( family = " sans ",size = 20,face = "bold"), #设置图片标题的字体、大小以及颜色 plot.title = element_text(margin = margin(t = 10, b = 10)),#控制标题与图表之间的距离 axis.title.x = element_text(margin = margin(t = 15),family = "sans"), axis.title.y = element_text(margin = margin(r = 15) ,family = "sans"),#调整X、Y轴标题距离绘图区的距离 legend.title = element_blank(), #去除图例的标题 panel.border = element_rect( linetype = "solid", size = 2,color = "gray50") #绘图区外框颜色、线型以及粗细 ) + labs(title="Add marginal to scatter",hjust=0.5) + xlab("carat") + yl ab("price") #添加标题
边际图是叠加在散点图上的,它有多个类型可供选择。
参数解读:
p:之前绘制好的散点图
type:添加的边际图类型
density:密度曲线
histogram:直方图
boxpot:箱线图
violin:小提琴图
densigram:密度图与直方图的结合
margins:边际图添加在哪一方向
both:X、Y轴都添加
X:只添加X轴
Y:只添加Y轴
size:主图与边际图的比例关系
fill:填充颜色
color:描边颜色
p1 <- ggMarginal(p, type ="densigram", margins = "both", fill="#A7B9D7", color="steelblue")
一副完整的散点图加边际图就绘制好了。边际图也可以根据需要尝试各样的类型:
只添加X轴的密度图
ggMarginal( p, type = "density", margins = "x", fill = "#A7B9D7", color="steelblue")
只添加Y轴的小提琴图
ggMarginal( p, type = "violin", margins = "y", fill = "red", color="steelblue" )
Recommend more
推荐更多
-
J Hazard Mater(IF=13.6) | 蛋白质磷酸化:大麦应对纳米塑料与氧化锌纳米粒子的关键调控因子纳米材料作为纳米技术发展的物质基础,已在多个领域得到广泛应用。在农业方面,氧化锌纳米颗粒(ZnO nanoparticles, ZnO NPs)可用作纳米肥料施用,能够增加植物的光合碳同化、水分利用效率和胁迫抗性。2024-03-12
-
Cell揭秘,发现准妈妈补充叶酸的“真相”无论是影视作品中还是日常生活中,我们能经常看到备孕期、怀孕期的准妈妈会主动补充叶酸,但是叶酸是什么呢?为什么准妈妈们要补充叶酸呢?叶酸有什么作用呢?补充的叶酸对于怀孕过程和小宝宝的生长有什么影响呢?2024-03-05
-
国自然热点:黄芪新发现,逆转心肌梗死后重构,改善心功能该研究发现新型小分子黄芪甲苷(Astragaloside IV)衍生物HHQ16通过与长链非编码RNA(long non-coding RNA, lncRNA)-lnc4012/9456特异性结合导致其降解,进而拮抗G3BP2/NF-κB信号通路信号传导2024-02-27
-
项目文章 | 基于靶向代谢组学鉴定肠炎沙门氏菌污染鸡的生物标志代谢物肠炎沙门氏菌(S.enteritidis)是一种严重威胁畜牧业和人类健康的人畜共患病原体,它引起的污染已成为中国乃至世界细菌性食物中毒的主要原因。本研究旨在研究肠炎沙门氏菌在鸡体内的代谢特征,寻找肠炎沙门氏菌在鸡体内的代谢标志物。2024-02-22
-
项目文章(IF=18.9) | 中科院微生所仲乃琴团队在马铃薯疮痂病方向新突破马铃薯作为世界第四大粮食作物,在保障人类粮食供应稳定方面发挥着重要作用。然而,由致病性链霉菌(Streptomyces)引起的马铃薯普通疮痂病(common scab, CS)在全球范围内均有发生,且危害逐年增加。2024-01-25
-
干货分享 | 5min带你认识简单好用的通路数据库——ReactomeReactome数据库交叉引用了100多个不同的在线生物信息学资源,包括NCBI、Ensembl和UniProt数据库、UCSC基因组浏览器、ChEBI小分子数据库和PubMed文献数据库等。2023-08-23
-
科研加速宝典 | 跟着CNS学习肠菌研究策略“肠道菌群与人体健康关系的研究”被列入 Science 杂志报道的十大科学进展,对肠道菌群的研究早已成为科学热点之一。2023-08-23