查看: 819|回复: 12

[R语言] R|散点图+边际图(柱形图,小提琴图),颜值区UP

[复制链接]

版主

Rank: 10Rank: 10Rank: 10

主题
40
注册时间
2016.3.21
在线时间
178 小时

活跃会员突出贡献


发表于 2021.3.30 17:34:48 | 显示全部楼层 |阅读模式
                                                                                                  
首发于公众号 “生信补给站”,https://mp.weixin.qq.com/s/1dZ1NkbnaWgTDAH01nztZw


散点图作为一种展示2组连续变量关系的常用可视化方式之一,添加点,线,箭头,线段,注释,甚至函数,公式,方差表都没有问题。ggplot2-annotation|画图点“精”,让图自己“解释”
R-ggpmisc|回归曲线添加回归方程,R2,方差表,香不香?
本文简单的介绍2种散点图添加边际图的方法。一 载入数据,R包使用经典数据集iris
  1. library(ggplot2) #加载ggplot2包
  2. library(ggExtra)
  3. library(ggstatsplot)
  4. data(iris)
  5. head(iris)
复制代码


二 ggplot2 + ggExtra绘制边际散点图
使用ggplot2
绘制散点图,然后利用ggExtra
包的函数添加边际柱形图2.1 绘制基础散点图
  1. p1 <- ggplot(iris, aes(Sepal.Length, Sepal.Width)) +
  2.   geom_point(color = "#00AFBB")
  3. p1
复制代码


2.2 添加一点点细节1)添加横轴,数轴线;2)添加R2 和 P值3)添加回归曲线
  1. p2 <- ggplot(iris, aes(Sepal.Length, Sepal.Width)) +
  2.   geom_point(color = "#00AFBB") +
  3.   geom_smooth(method="lm", se=T) +
  4.   geom_hline(yintercept = 3, linetype = "dashed", color = "blue") +
  5.   geom_vline(xintercept = 6, linetype = "dashed", color = "red") +
  6.   annotate("text", x=4.5, y=4.25, parse=TRUE,
  7.            label="r^2 == 0.0138 * '  p-value = 0.1529' ")p2
复制代码


既然是ggplot2绘制的,那更多细节还不是按照需求直接加就行嘛。
2.3 添加边际条形图使用ggMarginal
添加, Type 可选参数 histogram, density 和 boxplot.
  1. ggMarginal(p2, type = "histogram", fill = "#00AFBB")
复制代码


三 ggstatsplot绘制边际散点图
直接使用ggstatsplot包的ggscatterstats函数绘制
  1. library(ggstatsplot)ggscatterstats(  data = iris,                                          
  2.   x = Sepal.Length,                                                  
  3.   y = Sepal.Width,
  4.   xlab = "Sepal Length",
  5.   ylab = "Sepal Width",
  6.   marginal = TRUE,
  7.   marginal.type = "densigram",
  8.   margins = "both",
  9.   xfill = "blue", # 分别设置颜色
  10.   yfill = "#009E73",
  11.   title = "Relationship between Sepal Length and Sepal Width",
  12.   messages = FALSE
  13. )
复制代码


其中marginal.type可选 histograms,boxplots,density,violin,densigram (density + histogram);可自行尝试效果。
OK,文献中常见的带边际图的散点图就绘制好了!更多参数设置详见参考资料。

参考资料:https://www.r-graph-gallery.com/ ... stogram-for-ggplot2[/url]

PS:有个交流的讨论组,想沟通交流的,后台回复”入群“。◆ ◆ ◆  ◆ ◆
精心整理(含图版)|你要的全拿走!有备无患 (R统计,ggplot2绘图,生信图形可视化汇总)

               


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

迅猛龙

Rank: 8Rank: 8

主题
3
注册时间
2017.9.8
在线时间
26 小时

发表于 2021.3.31 09:22:19 | 显示全部楼层
加油,加油!
回复

使用道具 举报

迅猛龙

Rank: 8Rank: 8

主题
0
注册时间
2020.11.21
在线时间
30 小时

发表于 2021.3.31 09:54:00 | 显示全部楼层
坚持就是胜利!
回复

使用道具 举报

钵水母

Rank: 3Rank: 3

主题
0
注册时间
2021.1.28
在线时间
4 小时

发表于 2021.3.31 10:03:39 | 显示全部楼层
顶!!!!!!!!!!!
回复

使用道具 举报

中华鲟

Rank: 5Rank: 5

主题
0
注册时间
2017.6.6
在线时间
109 小时

灌水之王


发表于 2021.3.31 17:18:41 | 显示全部楼层
新的一天加油!
回复

使用道具 举报

迅猛龙

Rank: 8Rank: 8

主题
3
注册时间
2017.9.8
在线时间
26 小时

发表于 2021.4.1 08:18:35 | 显示全部楼层
加油,加油!
回复

使用道具 举报

帝王蝶

Rank: 4

主题
0
注册时间
2020.2.12
在线时间
42 小时

发表于 2021.4.1 08:45:32 | 显示全部楼层
新的一天加油!
回复

使用道具 举报

中华鲟

Rank: 5Rank: 5

主题
1
注册时间
2016.8.25
在线时间
62 小时

发表于 2021.4.1 10:02:24 | 显示全部楼层
收藏啦,谢谢
假期愉快
回复 支持 反对

使用道具 举报

迅猛龙

Rank: 8Rank: 8

主题
0
注册时间
2020.11.21
在线时间
30 小时

发表于 2021.4.1 11:13:58 | 显示全部楼层
坚持就是胜利!
回复

使用道具 举报

钵水母

Rank: 3Rank: 3

主题
0
注册时间
2020.12.21
在线时间
3 小时

发表于 2021.4.2 00:06:09 | 显示全部楼层
新的一天加油!
回复

使用道具 举报

迅猛龙

Rank: 8Rank: 8

主题
3
注册时间
2017.9.8
在线时间
26 小时

发表于 2021.4.2 08:56:51 | 显示全部楼层
加油,加油!
回复

使用道具 举报

迅猛龙

Rank: 8Rank: 8

主题
0
注册时间
2020.11.21
在线时间
30 小时

发表于 2021.4.3 16:15:20 | 显示全部楼层
坚持就是胜利!
回复

使用道具 举报

迅猛龙

Rank: 8Rank: 8

主题
0
注册时间
2020.11.21
在线时间
30 小时

发表于 7 天前 | 显示全部楼层
坚持就是胜利!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表