r语言散点图_R语言基本功:绘制带边际图的散点图

论坛 期权论坛 期权     
选择匿名的用户   2021-5-26 10:44   5835   0

f3e585dea77bfe00af137825189f2e46.png

这张图可以使用ggpubr包的ggscatterhist()函数绘制。


目 录

  • 1. 加载数据集

  • 2. 绘制图形

    • 2.1 绘制简单图形

    • 2.2 边际图为直方图

    • 2.3 添加参考线

    • 2.4 添加回归线

    • 2.5 向模型添加系数

  • 3. 复杂边际图

  • 4. ggscatterhist()函数


1. 加载数据集

首先安装需要的包和加载数据集。

install.packages("ggpubr") # 安装包library(ggpubr) # 加载包data(iris) # 加载数据集View(iris) # 预览数据集
d07fab626f90f484228b280037a7d814.png

2. 绘制图形

2.1 绘制简单图形

带边际密度图的散点图。

plots # 包含绘图变量的数据集                       x = "Sepal.Length", y = "Sepal.Width", # 绘图变量                       color = "#00AFBB", # 设置颜色                       margin.params = list(fill = "#00AFBB")) # 设置边际图的颜色
6e680ad903cff5339a56a276d4a3b9cb.png

2.2 边际图为直方图

将边际图修改为直方图。

plots # 包含绘图变量的数据集                       x = "Sepal.Length", y = "Sepal.Width", # 绘图变量                       color = "#00AFBB", # 设置颜色                       margin.plot = "histogram", # 设置边际图的类型                       margin.params = list(fill = "#00AFBB")) # 设置边际图的颜色
d84e773d73f05427b6ecb6d201ce66fc.png

2.3 添加参考线

plots$sp $sp +  # sp为散点图主图  geom_hline(yintercept = 3, linetype = "dashed", color = "blue") +  geom_vline(xintercept = 6, linetype = "dashed", color = "red")plots
14c7046aeb2f5bf4dbd9f826be2e6ac7.png

2.4 添加回归线

运行stat_smooth() 函数并设定method=lm即可向散点图中添加线性回归拟合线,调用lm()函数对数据拟合线性模型。

plots$sp $sp +  stat_smooth(method=lm)plots
f923057dfc59bf62721b05681d0e080d.png

默认情况下,stat_smooth()函数会为回归拟合线添加95%的置信域,置信域对应的置信水平可通过设置level参数来进行调整。设定参数se=FALSE时,系统将不会对回归拟合线添加置信域。

2.5 向模型添加系数

先建立线性模型,计算出模型系数,再把系数以文本形式添加到图形中。

model <- lm(Sepal.Length ~ Sepal.Width, iris)summary(model)
49218091db8e06644f3092971fb1e95e.png

上面的结果表明模型的r2值是0.0138,p-value为0.1519。

调用annotate()函数向其手动添加文本。

plots$sp   annotate("text", x=4.7, y=4.4, parse=TRUE,           label="r^2 == 0.0138 * '  p-value = 0.1529'")plots
59711ca2d1b062e86180ea8a84e66caf.png

3. 复杂边际图

ggscatterhist(  iris, x = "Sepal.Length", y = "Sepal.Width",  color = "Species", size = 2.5, alpha = 0.5,  palette = c("#00AFBB", "#E7B800", "#FC4E07"),  margin.params = list(fill = "Species", color = "black", size = 0.2))
c573bb52d137feeca48fec8e220c5d78.png
ggscatterhist(  iris, x = "Sepal.Length", y = "Sepal.Width",  color = "Species", size = 3, alpha = 0.6,  palette = c("#00AFBB", "#E7B800", "#FC4E07"),  margin.plot = "histogram",  ggtheme = theme_bw())
663fb14c762d05057720cddd15b3089c.png

4. ggscatterhist()函数

ggscatterhist(data, x, y, group = NULL, color = "black", fill = NA, palette = NULL,               shape = 19, size = 2, linetype = "solid", bins = 30,              margin.plot = c("density", "histogram", "boxplot"), margin.params = list(),              margin.ggtheme = theme_void(), margin.space = FALSE, main.plot.size = 2,              margin.plot.size = 1, title = NULL, xlab = NULL, ylab = NULL, legend = "top",              ggtheme = theme_pubr(), print = TRUE, ...)## 部分参数解释data # 包含x、y变量的数据框x, y # 绘图用的x、y变量group # 分组变量;如果缺少颜色和形状选项,则按组更改点的颜色和形状。当您要创建分组的边线箱图时,也应指定该参数。color、fill # 散点的颜色palette # 设置线图颜色的调色板;可为灰色调色板"grey";自定义调色板c("blue","red")# ggsci包调色板:"npg","aaas","lancet","jco","ucscgb","uchicago","simpsons"和"rickandmorty"。shape  # 散点的形状size # 散点的大小linetype # 线形 ("solid", "dashed", ...)bins # 直方图的条形数量,默认30,可自定义数值margin.plot # 边际图的类型("density", "histogram", "boxplot"),# 默认"hist",绘制直方图margin.params # 作用于边际图的参数,设置颜色、线形等margin.ggtheme # 边际图的图形主题,默认theme_void().margin.space # 逻辑词,为TRUE,则在边际图与主图之间增加空间main.plot.size # 主图的宽度,默认为2margin.plot.size # 边际图的宽度,默认为1title # 图形标题xlab、ylab # x轴、y轴标签legend  # 指定图例的位置,允许值有:"top", "bottom", "left", "right".ggtheme # 散点图的主题,默认为theme_pubr()print # 逻辑词,默认输出图形

参考资料

  1. R数据可视化手册;
  2. ggscatterhist()函数帮助文件。
文章推荐 统计基本功:如何又快又好完成分组统计? 这些免费统计学课程推荐给你,愿我们都能成为更好的自己。 这张统计图,强烈推荐,包括了直方图、密度曲线、散点图、趋势线、相关系数及显著性 看过许多统计教程,这篇是我最推荐的 【预测模型】构建COX回归模型,绘制ROC曲线,计算AUC及95%可信区间 如你有以下问题: 数据清洗、数据整理、统计分析、样本量计算、诊断试验、ROC曲线、临床预测模型、Graphpad作图、R语言、研究设计、投稿选刊、文章修回等问题,均可向刘老师咨询(微信号:tbwhere2, 需收取一定费用)。 1ef39c0af59cdb16fb9204043559c69f.png

热烈欢迎读者朋友们转发、点赞、点在看~~~

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP