2018-09-11浏览量:2671

还在头疼如何给SCI论文配图?ggpubr帮你轻松搞定~

01安装扩展包

方法一、

install.packages("ggpubr")

方法二、

# 从GitHub上安装最新版本

install.packages("devtools")

library(devtools)

install_github("kassambara/ggpubr")

 02加载扩展包

library(ggpubr)

整个安装过程非常方便简单。

 03加载demo数据

# 加载数据一 

data("mtcars")

df <- mtcars

 # 重点介绍数据中的四个属性 

#wt:重量

#mpg:汽车的油耗

#cyl:汽车的气缸数

#qsec:加速时间

# 加载数据二

data(“iris”)

#Sepal.Length Sepal.Width Petal.Length Petal.Width Species

#花萼长度 花萼宽度 花瓣长度 花瓣宽度 属种

 04绘制适用于杂志期刊的多样化图

1)、绘制wt和mpg的散点图,并在图中添加线性回归的线,添加置信区间,添加斯皮尔曼相关性系数,斯皮尔曼的检验p值。

ggscatter(df, x = "wt", y = "mpg",

add = "reg.line",         # Add regression line

conf.int = TRUE,        # Add confidence interval

add.params = list(color = "blue",ill = "lightgray"))

+stat_cor(method = "spearman", label.x = 3, label.y = 30)

# stat_cor:Add correlation coefficient

2)、按照汽车的气缸数分组添加线性回归线,添加置信区间,按照汽车的汽缸属分组,用不同颜色和点的形状进行区分。

df$cyl = as.factor(df$cyl)         #更改数据类型

ggscatter(df, x = "wt", y = "mpg",

add = "reg.line",           # Add regression line

conf.int = TRUE,          # Add confidence interval

color = "cyl", palette = "jco",  

# Color by groups "cyl"

shape = "cyl"   

# Change point shape by groups "cyl"

) + stat_cor(method = "spearman", aes(color = cyl), label.x = 3)                  

#  stat_cor:Add correlation coefficient

3)、按照汽车的气缸数分组添加线性回归线,用不同颜色和点的形状进行区分,在x,y轴上添加边际密度分布情况。 

ggscatter(df, x = "wt", y = "mpg", add = "reg.line", 

# Add regression line color = "cyl"

palette = "jco",             # Color by groups "cyl"

shape = "cyl",

# Change point shape by groups "cyl"

fullrange = TRUE,    

# Extending the regression line

rug = TRUE                 # Add marginal rug

)+ stat_cor(aes(color = cyl), label.x = 3) 

# stat_cor:Add correlation coefficient

4)、按照汽车的汽缸分成不同的组,并在不同的分组加上置信的圈图

ggscatter(df, x = "wt", y = "mpg", color = "cyl",

palette = "jco", shape = "cyl", ellipse = TRUE)

5)、按照汽车的汽缸分成不同的组,并在不同的分组上添加置信的多边形图

ggscatter(df, x = "wt", y = "mpg", color ="cyl",   palette = "jco",

shape = "cyl", ellipse = TRUE, ellipse.type =       "convex")

6)、按照花的种类进行分组,在x,y轴的边界上添加密度分布

sp <- ggscatter(iris, x = "Sepal.Length", y = "Sepal.Width",

color = "Species", palette = "jco", size = 3, alpha = 0.6)+

border() 

# Marginal density plot of x (top panel) and y (right panel)

xplot <- ggdensity(iris, "Sepal.Length", fill = "Species", palette = "jco")

yplot <- ggdensity(iris, "Sepal.Width", fill = "Species", palette = "jco")+

rotate()          

# Cleaning the plots 

sp <- sp + rremove("legend")

yplot <- yplot + clean_theme() + rremove("legend")

xplot <- xplot + clean_theme() + rremove("legend")

# Arranging the plot using cowplot

library(cowplot)

plot_grid(xplot, NULL, sp, yplot, ncol = 2,, rel_widths = c(2, 1),

rel_heights = c(1, 2))

7)、按照花的种类进行分组,在x,y轴的边界上添加boxplot图

sp <- ggscatter(iris, x = "Sepal.Length", y = "Sepal.Width", color = "Species",

palette = "jco", size = 3, alpha = 0.6,

ggtheme = theme_bw())

# Marginal boxplot of x (top panel) and y (right panel)

xplot <- ggboxplot(iris, x = "Species", y = "Sepal.Length", color = "Species",

fill = "Species", palette = "jco", alpha = 0.5, ggtheme = theme_bw())+

rotate()

yplot <- ggboxplot(iris, x = "Species", y = "Sepal.Width", color = "Species",

fill = "Species", palette = "jco", alpha = 0.5,

ggtheme = theme_bw()) 

# Cleaning the plots

sp <- sp + rremove("legend")

yplot <- yplot + clean_theme() + rremove("legend")

xplot <- xplot + clean_theme() + rremove("legend") 

# Arranging the plot using cowplot

library(cowplot)

plot_grid(xplot, NULL, sp, yplot, ncol = 2,,

rel_widths = c(2, 1), rel_heights = c(1, 2))

8)、在汽车重量和汽车油耗的散点图上绘制出油耗的热图

p <- ggscatter(df, x = "wt", y = "mpg", color = "mpg")

p + gradient_color(c("blue", "white", "red"))  

# Change gradient color

9)、在汽车重量和汽车油耗的散点图上绘制出加速时间的气泡图

ggscatter(df, x = "wt", y = "mpg", color = "cyl", palette = "jco", size = "qsec",

alpha = 0.5)+ scale_size(range = c(0.5, 15)) 

# scale_size:Adjust the range of points size

10)、在花萼的长度、花萼宽度的散点图中添加密度等高线

sp <- ggscatter(iris, x = "Sepal.Length", y = "Sepal.Width", color = "lightgray")

sp + geom_density_2d()    # Gradient color

sp + stat_density_2d(aes(fill = ..level..), geom = "polygon")     

# Change gradient color: custom

sp + stat_density_2d(aes(fill = ..level..), geom = "polygon")+

gradient_fill(c("white", "steelblue"))           

# Change the gradient color

sp + stat_density_2d(aes(fill = ..level..),

geom = "polygon") + gradient_fill("YlOrRd")    

# RColorBrewer palette

 

11)、在boxplot图中添加两组的p-values

data("ToothGrowth")

p <- ggboxplot(ToothGrowth, x = "supp", y = "len", color = "supp", palette = "jco",

add = "jitter")

p + stat_compare_means(method = " wilcox.test") 

# stat_compare_mean():自动添加p-value、显著性标记到ggplot图中

12)、在boxplot图中添加多组的p-values

compare_means(len ~ dose, data = ToothGrowth)

## # A tibble: 3 x 8

## .y. group1 group2 p p.adj p.format p.signif method

##

## 1 len 0.5 1 7.02e-06 1.40e-05 7.0e-06 **** Wilcoxon

## 2 len 0.5 2 8.41e-08 2.52e-07 8.4e-08 **** Wilcoxon

## 3 len 1 2 1.77e-04 1.77e-04 0.00018 *** Wilcoxon

# Visualize: Specify the comparisons you want

my_comparisons <- list( c("0.5", "1"), c("1", "2"), c("0.5", "2") )

ggboxplot(ToothGrowth, x = "dose", y = "len",

color = "dose", palette = "jco",add = "jitter")+

stat_compare_means(comparisons = my_comparisons)+  

# Add pairwise comparisons p-value

stat_compare_means(label.y = 50)          

# Add global p-value

13)、在小提琴图中添加p值

ggviolin(ToothGrowth, x = "dose", y = "len", fill = "dose",

palette = c("#00AFBB", "#E7B800", "#FC4E07"), add = "boxplot",

add.params = list(fill = "white"))+

stat_compare_means(comparisons = my_comparisons, label = "p.signif")+ 

# Add significance levels 

stat_compare_means(label.y = 50) 

# Add global the p-value

下一篇

版权所有 上海锐翌生物科技有限公司 沪ICP备16022951号