美文网首页数据科学与R语言
简易代码!一网打尽ggplot2箱线图,小提琴图,蜂窝图和云雨图

简易代码!一网打尽ggplot2箱线图,小提琴图,蜂窝图和云雨图

作者: 生信小书生 | 来源:发表于2022-03-20 13:36 被阅读0次

欢迎关注公众号查看原文
本期我们用ggplot2绘制箱线图,直接上图:

箱线图-综合.jpg

1.加载包

rm(list=ls())
#加载包
library(tidyverse)
library(ggplot2)
library(ggsci)
library(cowplot)
library(openxlsx)
library(ggsignif)##可以加P值,ggstatsplot超强统计包

2.加载数据

setwd("D:/本人信息/生信小书生/R语言绘图/2022-3-13箱线图")#载入路径
data <- read.xlsx("箱线图.xlsx")

3.绘图-箱线图

###箱型图
ggplot(data,aes(x=Name,y=Value))+
  geom_boxplot(aes(fill=Name)#,notch = T,notchwidth = 0.7 #变成锯齿状
               )+
  geom_point(aes(color=Name),position=position_jitter(width=0.15),size=2)+
  geom_signif(
    comparisons = list(c("CTRL","TP1")),test="t.test",
    tip_length = 0.02,size = 1,textsize = 4,#增加***尺寸
    map_signif_level = T #用*表示显著性,*---0.05,**---0.01,***---0.001
  )+
  scale_fill_lancet()+
  theme_cowplot() + theme(legend.position = c(0.85, 0.2))+
  theme_classic()+
  ggtitle("boxplot")+
  labs(title = 'boxplot', # 添加主标题
       x = 'Name', # x轴的名字
       y = 'Value',
       subtitle = 'Plot of name by value', # 添加次标记
       caption = 'Data source: LX')+ #添加脚注
  theme(plot.title    = element_text(color = 'black', size   = 16, hjust = 0.5),
        plot.subtitle = element_text(color = 'black', size   = 16,hjust = 0.5),
        plot.caption  = element_text(color = 'black', size   = 16,face = 'italic', hjust = 1),
        axis.text.x   = element_text(color = 'black', size = 16, angle = 0),
        axis.text.y   = element_text(color = 'black', size = 16, angle = 0),
        axis.title.x  = element_text(color = 'black', size = 16, angle = 0),
        axis.title.y  = element_text(color = 'black', size = 16, angle = 90),
        legend.title  = element_text(color = 'black', size  = 16),
        legend.text   = element_text(color = 'black', size   = 16),
        axis.line.y = element_line(color = 'black', linetype = 'solid'), # y轴线特征
        axis.line.x = element_line (color = 'black',linetype = 'solid'), # x轴线特征
        panel.border = element_rect(linetype = 'solid', size = 1.2,fill = NA)) # 图四周框起来
箱线图-2022-3-13.jpg

4.小提琴图

#####小提琴图----多了一个密度曲线
ggplot(data,aes(x=Name,y=Value))+
  geom_violin(aes(fill=Name),alpha=0.7)+
  #geom_point(aes(color=Species),position = "jitter")+#加抖动点
  geom_point(position = position_jitter(width=0.15),size=1)+###缩小抖动点
  geom_boxplot(width=0.1)+
  geom_signif(
    comparisons = list(c("CTRL","TP1")),test="t.test",
    tip_length = 0.02,size = 1,textsize = 4,#增加***尺寸
    map_signif_level = T #用*表示显著性,*---0.05,**---0.01,***---0.001
  )+
  scale_fill_lancet()+
  theme_cowplot() + theme(legend.position = c(0.85, 0.2))+
  theme_classic()+
  ggtitle("boxplot")+
  labs(title = 'boxplot', # 添加主标题
       x = 'Name', # x轴的名字
       y = 'Value',
       subtitle = 'Plot of name by value', # 添加次标记
       caption = 'Data source: LX')+ #添加脚注
  theme(plot.title    = element_text(color = 'black', size   = 16, hjust = 0.5),
        plot.subtitle = element_text(color = 'black', size   = 16,hjust = 0.5),
        plot.caption  = element_text(color = 'black', size   = 16,face = 'italic', hjust = 1),
        axis.text.x   = element_text(color = 'black', size = 16, angle = 0),
        axis.text.y   = element_text(color = 'black', size = 16, angle = 0),
        axis.title.x  = element_text(color = 'black', size = 16, angle = 0),
        axis.title.y  = element_text(color = 'black', size = 16, angle = 90),
        legend.title  = element_text(color = 'black', size  = 16),
        legend.text   = element_text(color = 'black', size   = 16),
        axis.line.y = element_line(color = 'black', linetype = 'solid'), # y轴线特征
        axis.line.x = element_line (color = 'black',linetype = 'solid'), # x轴线特征
        panel.border = element_rect(linetype = 'solid', size = 1.2,fill = NA)) # 图四周框起来
小提琴图-2022-3-13.jpg

5.蜂窝图

#####蜂窝图####
library(ggbeeswarm)
ggplot(data,aes(x=Name,y=Value))+
  geom_quasirandom(aes(color=Name),shape=19,
                   position = "jitter",
                   method = "smiley")+#加抖动点
  geom_signif(
    comparisons = list(c("CTRL","TP1")),test="t.test",
    tip_length = 0.02,size = 1,textsize = 4,#增加***尺寸
    map_signif_level = T #用*表示显著性,*---0.05,**---0.01,***---0.001
  )+
  scale_fill_lancet()+
  theme_cowplot() + theme(legend.position = c(0.85, 0.2))+
  theme_classic()+
  ggtitle("boxplot")+
  labs(title = 'boxplot', # 添加主标题
       x = 'Name', # x轴的名字
       y = 'Value',
       subtitle = 'Plot of name by value', # 添加次标记
       caption = 'Data source: LX')+ #添加脚注
  theme(plot.title    = element_text(color = 'black', size   = 16, hjust = 0.5),
        plot.subtitle = element_text(color = 'black', size   = 16,hjust = 0.5),
        plot.caption  = element_text(color = 'black', size   = 16,face = 'italic', hjust = 1),
        axis.text.x   = element_text(color = 'black', size = 16, angle = 0),
        axis.text.y   = element_text(color = 'black', size = 16, angle = 0),
        axis.title.x  = element_text(color = 'black', size = 16, angle = 0),
        axis.title.y  = element_text(color = 'black', size = 16, angle = 90),
        legend.title  = element_text(color = 'black', size  = 16),
        legend.text   = element_text(color = 'black', size   = 16),
        axis.line.y = element_line(color = 'black', linetype = 'solid'), # y轴线特征
        axis.line.x = element_line (color = 'black',linetype = 'solid'), # x轴线特征
        panel.border = element_rect(linetype = 'solid', size = 1.2,fill = NA)) # 图四周框起来
蜂窝图-2022-3-13.jpg

6.云雨图

###云雨图
library(gghalves)
ggplot(data,aes(x=Name,y=Value))+
  geom_half_violin(aes(fill=Name),alpha=0.7)+
  geom_point(position = position_jitter(width = 0.2))+#加抖动点
  geom_boxplot(width=0.1)+
  scale_fill_lancet()+
  theme_cowplot()
##调节云
ggplot(data,aes(x=Name,y=Value))+
  geom_half_violin(aes(fill=Name),
                   alpha=0.7,side="r",
                   adjust=1/2,
                   position = position_nudge(x=0.2,y=0))+#云往左调整
  geom_point(position = position_jitter(width =0.2),size=1)+#加抖动点
  geom_boxplot(width=0.1,
               position = position_nudge(x=0.2,y=0))+
  scale_fill_brewer(palette = "Dark2")+
  theme_cowplot()+
  coord_flip() + theme(legend.position = c(0.85, 0.3))+###旋转坐标轴
scale_fill_lancet()+
  theme_cowplot() + theme(legend.position = c(0.85, 0.2))+
  theme_classic()+
  ggtitle("boxplot")+
  labs(title = 'boxplot', # 添加主标题
       x = 'Name', # x轴的名字
       y = 'Value',
       subtitle = 'Plot of name by value', # 添加次标记
       caption = 'Data source: LX')+ #添加脚注
  theme(plot.title    = element_text(color = 'black', size   = 16, hjust = 0.5),
        plot.subtitle = element_text(color = 'black', size   = 16,hjust = 0.5),
        plot.caption  = element_text(color = 'black', size   = 16,face = 'italic', hjust = 1),
        axis.text.x   = element_text(color = 'black', size = 16, angle = 0),
        axis.text.y   = element_text(color = 'black', size = 16, angle = 0),
        axis.title.x  = element_text(color = 'black', size = 16, angle = 0),
        axis.title.y  = element_text(color = 'black', size = 16, angle = 90),
        legend.title  = element_text(color = 'black', size  = 16),
        legend.text   = element_text(color = 'black', size   = 16),
        axis.line.y = element_line(color = 'black', linetype = 'solid'), # y轴线特征
        axis.line.x = element_line (color = 'black',linetype = 'solid'), # x轴线特征
        panel.border = element_rect(linetype = 'solid', size = 1.2,fill = NA)) # 图四周框起来
云雨图-2022-3-13.jpg

详细数据请参考微信公众号!

相关文章

网友评论

    本文标题:简易代码!一网打尽ggplot2箱线图,小提琴图,蜂窝图和云雨图

    本文链接:https://www.haomeiwen.com/subject/ddnodrtx.html