library(ggplot2)Warning: package 'ggplot2' was built under R version 4.3.2
library(ggpubr)Warning: package 'ggpubr' was built under R version 4.3.2
本笔记记录了一个使用ggplot2和ggpubr包创建带有线性拟合曲线和相关系数及p值标注的散点图的示例。如果你还没有安装ggpubr包,请先安装它。
install.packages("ggpubr")加载必要的包:
library(ggplot2)Warning: package 'ggplot2' was built under R version 4.3.2
library(ggpubr)Warning: package 'ggpubr' was built under R version 4.3.2
生成一些示例数据:
# 假设我们有两个变量x和y
set.seed(123) # 设置种子以便结果可复现
x <- rnorm(100)
y <- 0.5*x + rnorm(100)
data <- data.frame(x=x, y=y)创建一个散点图,并添加拟合线和相关性系数标注:
ggplot(data, aes(x=x, y=y)) +
geom_point() + # 添加散点
geom_smooth(method='lm', color='blue', formula = y ~ x) + # 添加线性拟合曲线
stat_cor(method = "pearson", label.x = 1, label.y = 4) # 添加相关性系数标注在这里:
geom_point() 添加了散点图。
geom_smooth() 添加了线性拟合曲线,method='lm' 表示使用线性模型进行拟合,color='blue' 定义了曲线的颜色,formula = y ~ x 定义了模型的公式。
stat_cor() 是ggpubr包提供的函数,用于计算并添加相关性系数(Pearson方法)和p值。label.x和label.y参数定义了标注的位置。
这段代码将生成一个散点图,上面有蓝色的线性拟合曲线,以及在指定位置显示的相关系数和p值。请注意,label.x和label.y的值可能需要根据您的数据范围进行调整。
要美化图表并在散点图的边缘添加表示X和Y轴变量分布的直方图,可以使用ggExtra::ggMarginal函数。以下是整个过程的代码示例,包括一些额外的美化设置:
首先,你需要安装并加载ggExtra包,如果你还没安装,可以使用以下命令:
install.packages("ggExtra")然后加载必要的包:
library(ggplot2)
library(ggExtra)Warning: package 'ggExtra' was built under R version 4.3.2
library(ggpubr)继续使用之前创建的数据data来绘图,并应用一些ggplot2的美化设置:
# 创建基本的散点图
p <- ggplot(data, aes(x=x, y=y)) +
geom_point(color = "#00BFC4") + # 设定散点的颜色
geom_smooth(method='lm', color='red', fill="#FFCCCC") + # 添加线性拟合曲线,不显示置信区间
theme_minimal() + # 使用简洁的主题
theme(text = element_text(size = 12)) + # 设定文字大小
stat_cor(method = "pearson", label.x = 1, label.y = 4) + # 添加相关性系数标注
labs(x = "X轴变量", y = "Y轴变量") # 添加轴标签
# 使用ggExtra添加边缘直方图
ggMarginal(p, type = "histogram", fill = "blue")`geom_smooth()` using formula = 'y ~ x'
`geom_smooth()` using formula = 'y ~ x'
在这里:
theme_minimal() 应用了一个简洁的主题,使图表看起来更为现代和简洁。
theme(text = element_text(size = 12)) 设置了全局的文本大小。
labs(x = "X轴变量", y = "Y轴变量") 设置了轴的标签。
ggMarginal() 函数添加了边缘的直方图,type = "histogram" 参数指定了要添加的边缘图类型,fill = "blue" 设定了直方图的填充颜色。
根据你的数据和显示设备的不同,你可能需要调整stat_cor中的label.x和label.y参数以确保标签在图上的位置合适。此外,由于图形元素可能会互相重叠,所以你可能还需要调整geom_point和geom_smooth中的一些参数来达到最佳的视觉效果。
devtools::session_info()─ Session info ───────────────────────────────────────────────────────────────
setting value
version R version 4.3.1 (2023-06-16 ucrt)
os Windows 11 x64 (build 22621)
system x86_64, mingw32
ui RTerm
language (EN)
collate Chinese (Simplified)_China.utf8
ctype Chinese (Simplified)_China.utf8
tz Asia/Hong_Kong
date 2023-11-08
pandoc 3.1.9 @ C:/Users/HANWAN~1/AppData/Local/Pandoc/ (via rmarkdown)
─ Packages ───────────────────────────────────────────────────────────────────
package * version date (UTC) lib source
abind 1.4-5 2016-07-21 [1] CRAN (R 4.3.0)
backports 1.4.1 2021-12-13 [1] CRAN (R 4.3.0)
broom 1.0.5 2023-06-09 [1] CRAN (R 4.3.2)
cachem 1.0.8 2023-05-01 [1] CRAN (R 4.3.1)
callr 3.7.3 2022-11-02 [1] CRAN (R 4.3.1)
car 3.1-2 2023-03-30 [1] CRAN (R 4.3.2)
carData 3.0-5 2022-01-06 [1] CRAN (R 4.3.2)
cli 3.6.1 2023-03-23 [1] CRAN (R 4.3.1)
colorspace 2.1-0 2023-01-23 [1] CRAN (R 4.3.1)
crayon 1.5.2 2022-09-29 [1] CRAN (R 4.3.1)
devtools 2.4.5 2022-10-11 [1] CRAN (R 4.3.2)
digest 0.6.33 2023-07-07 [1] CRAN (R 4.3.1)
dplyr 1.1.3 2023-09-03 [1] CRAN (R 4.3.2)
ellipsis 0.3.2 2021-04-29 [1] CRAN (R 4.3.1)
evaluate 0.21 2023-05-05 [1] CRAN (R 4.3.1)
fansi 1.0.4 2023-01-22 [1] CRAN (R 4.3.1)
farver 2.1.1 2022-07-06 [1] CRAN (R 4.3.1)
fastmap 1.1.1 2023-02-24 [1] CRAN (R 4.3.1)
fs 1.6.3 2023-07-20 [1] CRAN (R 4.3.1)
generics 0.1.3 2022-07-05 [1] CRAN (R 4.3.1)
ggExtra * 0.10.1 2023-08-21 [1] CRAN (R 4.3.2)
ggplot2 * 3.4.4 2023-10-12 [1] CRAN (R 4.3.2)
ggpubr * 0.6.0 2023-02-10 [1] CRAN (R 4.3.2)
ggsignif 0.6.4 2022-10-13 [1] CRAN (R 4.3.2)
glue 1.6.2 2022-02-24 [1] CRAN (R 4.3.1)
gtable 0.3.3 2023-03-21 [1] CRAN (R 4.3.1)
htmltools 0.5.5 2023-03-23 [1] CRAN (R 4.3.1)
htmlwidgets 1.6.2 2023-03-17 [1] CRAN (R 4.3.1)
httpuv 1.6.11 2023-05-11 [1] CRAN (R 4.3.1)
jsonlite 1.8.7 2023-06-29 [1] CRAN (R 4.3.1)
knitr 1.43 2023-05-25 [1] CRAN (R 4.3.1)
labeling 0.4.2 2020-10-20 [1] CRAN (R 4.3.0)
later 1.3.1 2023-05-02 [1] CRAN (R 4.3.1)
lattice 0.21-8 2023-04-05 [2] CRAN (R 4.3.1)
lifecycle 1.0.3 2022-10-07 [1] CRAN (R 4.3.1)
magrittr 2.0.3 2022-03-30 [1] CRAN (R 4.3.1)
Matrix 1.6-1.1 2023-09-18 [1] CRAN (R 4.3.2)
memoise 2.0.1 2021-11-26 [1] CRAN (R 4.3.1)
mgcv 1.9-0 2023-07-11 [1] CRAN (R 4.3.1)
mime 0.12 2021-09-28 [1] CRAN (R 4.3.0)
miniUI 0.1.1.1 2018-05-18 [1] CRAN (R 4.3.1)
munsell 0.5.0 2018-06-12 [1] CRAN (R 4.3.1)
nlme 3.1-162 2023-01-31 [2] CRAN (R 4.3.1)
pillar 1.9.0 2023-03-22 [1] CRAN (R 4.3.1)
pkgbuild 1.4.2 2023-06-26 [1] CRAN (R 4.3.1)
pkgconfig 2.0.3 2019-09-22 [1] CRAN (R 4.3.1)
pkgload 1.3.2.1 2023-07-08 [1] CRAN (R 4.3.1)
prettyunits 1.1.1 2020-01-24 [1] CRAN (R 4.3.1)
processx 3.8.2 2023-06-30 [1] CRAN (R 4.3.1)
profvis 0.3.8 2023-05-02 [1] CRAN (R 4.3.1)
promises 1.2.0.1 2021-02-11 [1] CRAN (R 4.3.1)
ps 1.7.5 2023-04-18 [1] CRAN (R 4.3.1)
purrr 1.0.2 2023-08-10 [1] CRAN (R 4.3.2)
R6 2.5.1 2021-08-19 [1] CRAN (R 4.3.1)
Rcpp 1.0.11 2023-07-06 [1] CRAN (R 4.3.1)
remotes 2.4.2.1 2023-07-18 [1] CRAN (R 4.3.1)
rlang 1.1.1 2023-04-28 [1] CRAN (R 4.3.1)
rmarkdown 2.23 2023-07-01 [1] CRAN (R 4.3.1)
rstatix 0.7.2 2023-02-01 [1] CRAN (R 4.3.2)
rstudioapi 0.15.0 2023-07-07 [1] CRAN (R 4.3.1)
scales 1.2.1 2022-08-20 [1] CRAN (R 4.3.1)
sessioninfo 1.2.2 2021-12-06 [1] CRAN (R 4.3.1)
shiny 1.7.4.1 2023-07-06 [1] CRAN (R 4.3.1)
stringi 1.7.12 2023-01-11 [1] CRAN (R 4.3.0)
stringr 1.5.0 2022-12-02 [1] CRAN (R 4.3.1)
tibble 3.2.1 2023-03-20 [1] CRAN (R 4.3.1)
tidyr 1.3.0 2023-01-24 [1] CRAN (R 4.3.1)
tidyselect 1.2.0 2022-10-10 [1] CRAN (R 4.3.1)
urlchecker 1.0.1 2021-11-30 [1] CRAN (R 4.3.1)
usethis 2.2.2 2023-07-06 [1] CRAN (R 4.3.1)
utf8 1.2.3 2023-01-31 [1] CRAN (R 4.3.1)
vctrs 0.6.3 2023-06-14 [1] CRAN (R 4.3.1)
withr 2.5.0 2022-03-03 [1] CRAN (R 4.3.1)
xfun 0.39 2023-04-20 [1] CRAN (R 4.3.1)
xtable 1.8-4 2019-04-21 [1] CRAN (R 4.3.1)
yaml 2.3.7 2023-01-23 [1] CRAN (R 4.3.0)
[1] C:/Users/Han Wang/AppData/Local/R/win-library/4.3
[2] C:/Program Files/R/R-4.3.1/library
──────────────────────────────────────────────────────────────────────────────