前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >R|散点图+边际图(柱形图,小提琴图),颜值UP

R|散点图+边际图(柱形图,小提琴图),颜值UP

作者头像
生信补给站
发布于 2022-03-11 11:00:53
发布于 2022-03-11 11:00:53
1.3K00
代码可运行
举报
文章被收录于专栏:生信补给站生信补给站
运行总次数:0
代码可运行

散点图作为一种展示2组连续变量关系的常用可视化方式之一,添加点,线,箭头,线段,注释,甚至函数,公式,方差表都没有问题。

本文简单的介绍2种散点图添加边际图的方法。

一 载入数据,R包

使用经典数据集iris

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
library(ggplot2) #加载ggplot2包
library(ggExtra)
library(ggstatsplot)
data(iris)
head(iris)

二 ggplot2 + ggExtra绘制边际散点图

使用ggplot2绘制散点图,然后利用ggExtra包的函数添加边际柱形图

2.1 绘制基础散点图
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
p1 <- ggplot(iris, aes(Sepal.Length, Sepal.Width)) + 
  geom_point(color = "#00AFBB")
p1
2.2 添加一点点细节

1)添加横轴,数轴线;

2)添加R2 和 P值

3)添加回归曲线

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
p2 <- ggplot(iris, aes(Sepal.Length, Sepal.Width)) + 
  geom_point(color = "#00AFBB") + 
  geom_smooth(method="lm", se=T) + 
  geom_hline(yintercept = 3, linetype = "dashed", color = "blue") +
  geom_vline(xintercept = 6, linetype = "dashed", color = "red") +
  annotate("text", x=4.5, y=4.25, parse=TRUE,
           label="r^2 == 0.0138 * '  p-value = 0.1529' ")p2

既然是ggplot2绘制的,那更多细节还不是按照需求直接加就行嘛

2.3 添加边际条形图

使用ggMarginal添加, Type 可选参数 histogram, density 和 boxplot.

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ggMarginal(p2, type = "histogram", fill = "#00AFBB")

三 ggstatsplot绘制边际散点图

直接使用ggstatsplot包的ggscatterstats函数绘制

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
library(ggstatsplot)ggscatterstats(  data = iris,                                          
  x = Sepal.Length,                                                  
  y = Sepal.Width,
  xlab = "Sepal Length",
  ylab = "Sepal Width",
  marginal = TRUE,
  marginal.type = "densigram",
  margins = "both",
  xfill = "blue", # 分别设置颜色
  yfill = "#009E73",
  title = "Relationship between Sepal Length and Sepal Width",
  messages = FALSE
)

其中marginal.type可选 histograms,boxplots,density,violin,densigram (density + histogram);可自行尝试效果。

OK,文献中常见的带边际图的散点图就绘制好了!更多参数设置详见参考资料。

参考资料:

https://www.r-graph-gallery.com/277-marginal-histogram-for-ggplot2

https://indrajeetpatil.github.io/ggstatsplot/

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-01-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信补给站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验