一款基于ggplot2的可视化包ggpubr
本文基于关于改包的说明文档进行练习
-
ggdensity 密度图
#构建数据集
set.seed(1234)
wdata = data.frame(
sex = factor(rep(c("F", "M"), each=200)),
weight = c(rnorm(200, 55), rnorm(200, 58)))
head(wdata)
sex weight
1 F 53.79293
2 F 55.27743
3 F 56.08444
4 F 52.65430
5 F 55.42912
6 F 55.50606
ggdensity(wdata, x = "weight",
add = "mean", rug = TRUE,
color = "sex", fill = "sex",
palette = c("#00AFBB", "#E7B800"))
# add: mean or median
# rug:是否添加地毯线
![](https://img.haomeiwen.com/i19633912/923a87750d546b28.png)
-
gghistogram 直方图
还是用上述数据集
(1) 直方图
gghistogram(wdata, x = "weight",
add = "mean", rug = TRUE,
color = "sex", fill = "sex",
palette = c("#00AFBB", "#E7B800"))
![](https://img.haomeiwen.com/i19633912/1290bb5ad1feef79.png)
(2) 还可以和密度图进行结合
gghistogram(wdata, x = "weight",
add = "mean", rug = TRUE,
fill = "sex", palette = c("#00AFBB", "#E7B800"),
add_density = TRUE)
![](https://img.haomeiwen.com/i19633912/1bd89c397f39f3a1.png)
-
ggbarplot 条形图
(1)基础画图
# 构建数据集
df <- data.frame(dose=c("D0.5", "D1", "D2"),
len=c(4.2, 10, 29.5))
print(df)
dose len
1 D0.5 4.2
2 D1 10.0
3 D2 29.5
## 画图
ggbarplot(df, "dose", "len",
fill = "dose", color = "dose",
palette = c("#00AFBB", "#E7B800", "#FC4E07"), label = TRUE,
lab.pos = "in", lab.col = "white",
orientation = "horiz",order = c("D2", "D1", "D0.5"))
# palette,添加颜色, 可以添加期刊颜色,
“simpsons” and “rickandmorty”'
# label: 是否添加数值
# lab.co: label的颜色
# lab.pos: label的位置,in or out
# orientation: 水平or 垂直
# order: 柱子的顺序
可以应用不用期刊的颜色,比如‘npg’ 是就是nature迁颜色,其余还有 “npg”, “aaas”, “lancet”, “jco”, “ucscgb”, “uchicago”,
![](https://img.haomeiwen.com/i19633912/0e6a26f3e9d18aa7.png)
(2) 多个组进行画图
- 构建数据集
df3 <- ToothGrowth
head(df3, 10)
len supp dose
1 4.2 VC 0.5
2 11.5 VC 0.5
3 7.3 VC 0.5
4 5.8 VC 0.5
5 6.4 VC 0.5
6 10.0 VC 0.5
(1) 显示每一个组中的值的大小
ggbarplot(df3, x = "dose", y = "len")
每一个dose中,均有多个len值组成,可以根据add 参数进行不同值的现实
![](https://img.haomeiwen.com/i19633912/ccc55f73fe8bdf6d.png)
(2) 添加error bar
ggbarplot(df3, x = "dose", y = "len",
add = "mean_se" (error_bar),
label = TRUE, lab.vjust = -1.6,
fill='supp',
position = position_dodge() ## 没有该参数为堆积图)
调整是否为堆积图
add 可以添加的值有none", "dotplot", "jitter", "boxplot", "point", "mean", "mean_se", "mean_sd", "mean_ci", "mean_range", "median", "median_iqr", "median_hilow", "median_q1q3", "median_mad", "median_range
![](https://img.haomeiwen.com/i19633912/a074437c504c6296.png)
(3) 误差线
误差线可以选择上部分,通过
error.plot = "upper_errorbar" 设置
同时添加误差线和点
add = c("mean_se", "dotplot")
![](https://img.haomeiwen.com/i19633912/8de1c54e273eb44c.png)
, 通过sort.val 和sort.by.groups 进行设置,sort.val决定是排序大小'asc' or 'desc'; sort.by.groups 布尔值,是否以组进行排序
-
boxplot/violin
(1) box plot
p <- ggboxplot(df, "dose", "len",
fill = "dose", palette = 'npg', ``
add ='jitter', ## 添加点
shape ='dose')
![](https://img.haomeiwen.com/i19633912/049f47b928b64332.png)
(2) 添加p值
## 不同组进行比较
my_comparisons <- list(c("0.5", "1"), c("1", "2"), c("0.5", "2"))
p+stat_compare_means(comparisons = my_comparisons, label = "p.signif")+ stat_compare_means(label.y = 50)
# 删除label = "p.signif" 则以数值形式显示显著性
![](https://img.haomeiwen.com/i19633912/533d2e8c8f0096a8.png)
(3) violin
ggviolin(df, "dose", "len", fill = "dose",
palette = c("#00AFBB", "#E7B800", "#FC4E07"),
add = "boxplot", add.params = list(fill = "white"))
![](https://img.haomeiwen.com/i19633912/c6b9fa4b95753d63.png)
-
dotchar
数据载入
df2 <- mtcars
df2$name <- rownames(df2)
df2$cyl <- factor(df2$cyl); 数值变为factor
ggdotchart(df2, 'name','mpg',color = 'cyl',palette = 'aaas',
add = 'segments', # 添加点下面的线
sorting = 'ascending', # 排序descending
dot.size = 6, #点的大小
label = round(df2$mpg),## 显示label
font.label = list(color='white',size=9,vjust=0.5))
![](https://img.haomeiwen.com/i19633912/df50db11f6bea5de.png)
网友评论