ggplot扩展包--gghalves

gghalves包

描述

这里主要介绍这个包中的geom_half_violin()函数,它相当于geom_violin()函数的变体,因为这个函数主要作用就是展示一半的小提琴图,然后与其他图形组合。

使用

geom_half_violin(mapping = NULL, data = NULL, stat = "half_ydensity",
  position = "dodge", ..., side = "l", nudge = 0,
  draw_quantiles = NULL, trim = TRUE, scale = "area",
  na.rm = FALSE, show.legend = NA, inherit.aes = TRUE)

stat_half_ydensity(mapping = NULL, data = NULL, geom = "half_violin",
  position = "dodge", ..., bw = "nrd0", adjust = 1,
  kernel = "gaussian", trim = TRUE, scale = "area", na.rm = FALSE,
  show.legend = NA, inherit.aes = TRUE)

参数

参数解释
mapping通过aes()指定图形属性映射。默认为NULL,使用ggplot()aes()指定的映射。
data指定数据框。默认为NULL,使用ggplot()中的数据。
stat覆盖geom_density()和stat_density()之间的默认连接。
position位置调整,可以是字符串,默认为"dodge",也可以是位置调整函数的调用结果。
...其他参数,通常是图形属性,将其设置为固定值,如color = "red"或者size = 3
side画半小提琴图的一侧。 “ l”代表左,“ r”代表右,默认为“ l”。
nudge在小提琴图和分配给x轴上给定因子的空间中间之间添加空间。
draw_quantiles如果不是MULL(默认为NULL),在给定的密度估计分位数处绘制水平线。
trim若为TRUE(默认),将小提琴的尾部修整到数据范围。 若为FALSE,不修剪尾巴。
scale如果为"area"(默认),则所有小提琴都具有相同的面积(修剪尾部之前)。
如果为"count",则面积将与观察值成比例地缩放。如果为"width",则所有小提琴都具有相同的最大宽度。
na.rm如果为FALSE(默认),则会使用警告删除缺失值。如果为TRUE,则会自动删除缺少的值。
show.legend逻辑值,默认为NA,若为FALSE,不显示该图层的图例;
若为TRUE,则显示该图层的图例。
它也可以是带有名称(图形属性)的逻辑向量,用来选择要显示的图形属性。
show.legend = c(size = TRUE,color = FALSE)表示显示size对应的图例,
而不显示color对应的图例。
inherit.aes默认为TRUE,若为FALSE,覆盖ggplot()aes()默认属性,而不是与他们组合。
geom覆盖geom_density()stat_density()之间的默认连接。
bw要使用的平滑带宽度。如果是数字,则为平滑内核的标准差。
adjust多次带宽调整。这使得可以在仍使用带宽估计器的情况下调整带宽。
例如,adjust = 1/2表示使用默认带宽的一半。
kernel内核,平滑曲线方法。详见:density()

示例

云雨图

library(tidyverse)
# 统计摘要
summ_iris <- iris %>% 
  group_by(Species) %>% 
  summarise(
    mean = mean(Sepal.Length),
    sd = sd(Sepal.Length),
    n = n()
  ) %>% 
  mutate(se = sd/sqrt(n),
         Species = factor(Species, levels = c('versicolor', 'setosa', 'virginica')))

# 数据转换  
iris_plot <- iris %>% 
  mutate(Species = factor(Species, levels = c('versicolor', 'setosa', 'virginica')))

# 绘图
library(gghalves)
library(ggpubr)
library(ggsignif)
ggplot(iris_plot , aes(x = Species, y = Sepal.Length, fill = Species))+
  geom_half_violin(aes(fill = Species),
                   position = position_nudge(x = .15, y = 0),
                   adjust=1.5, trim=FALSE, colour=NA, side = 'r') +
  geom_point(aes(x = as.numeric(Species) - 0.1,
                 y = Sepal.Length,color = Species),
                 position = position_jitter(width = .05),size = .25, shape = 20) +
  geom_boxplot(aes(x = Species,y = Sepal.Length, fill = Species),
               outlier.shape = NA,
               width = .05,
               color = "black")+
  geom_point(data=summ_iris,
             aes(x=Species,y = mean,group = Species, color = Species),
             shape=18,
             size = 1.5,
             position = position_nudge(x = .1,y = 0)) +
  geom_errorbar(data = summ_iris,
                aes(x = Species, y = mean, group = Species, colour = Species,
                    ymin = mean-se, ymax = mean+se),
                width=.05,
                position=position_nudge(x = .1, y = 0)
                ) +
  scale_color_jco() +
  scale_fill_jco() +
  geom_signif(comparisons = list(c("versicolor", "setosa"),
                                 c("versicolor", "virginica"),
                                 c("setosa", "virginica")),
              y_position = c(8.2, 8.6, 8.4),
              map_signif_level = c("***" = 0.001, "**" = 0.01, "*" = 0.05)) +
  ggsave('云雨图.pdf', width = 7, height = 6)

在这里插入图片描述
本博客内容将同步更新到个人微信公众号生信玩家。欢迎大家关注~~~
在这里插入图片描述

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值