该内容已被发布者删除 该内容被自由微信恢复
文章于 3月31日 下午 1:50 被检测为删除。
查看原文
被用户删除
其他

R语言绘图 | 使用ggstatsplot绘制小提琴图

小陈的R语言笔记 小陈的R语言笔記 2024-03-31

小提琴图

小提琴图(Violin Plot)用于可视化连续型数据的分布,事实上它是箱形图和核密度图的混合体。它的外形类似于小提琴,由中间的厚实部分和两端的细长部分组成。这个厚实的部分代表数据的主要密度区域,而细长的部分表示数据的稀疏区域。与此同时,小提琴图还包含盒形图(箱线图)的元素,显示数据的五数概括,如最小值、第一四分位数、中位数、第三四分位数和最大值。

小提琴图将箱形图和核密度图的优点结合在一起,既能展示数据的分布情况,又能够直观地显示数据的五数概括,同时避免了直方图需要手动选择分组的缺点。这种组合使得小提琴图在数据可视化中成为一种强大的工具,特别适用于比较不同组之间的数据分布情况,以及发现数据的异常值和趋势。

准备

加载R包:

# 加载所需的包
library(ggstatsplot)    # 用于创建统计图
library(palmerpenguins) # 用于获取企鹅数据
library(tidyverse)      # 用于数据处理

加载和清洗数据:

# 从palmerpenguins包中获取企鹅数据
data("penguins", package = "palmerpenguins")
# 删除数据中的缺失值
penguins <- drop_na(penguins)

绘图

绘制基础图形:

plt <- ggbetweenstats(data = penguins,
                      x = species,
                      y = bill_length_mm)

添加标签和标题:

# 添加标签和标题
plt <- plt + 
  labs(
    x = "Penguins Species",            # x轴标签
    y = "Bill Length",                 # y轴标签
    title = "Distribution of bill length across penguins species" # 图标题
  ) + 
  # 自定义主题
  theme(
    # 字体样式
    text = element_text(family = "Roboto", size = 8, color = "black"),
    # 图标题样式
    plot.title = element_text(
      family = "Lobster Two"
      size = 20,
      face = "bold",
      color = "#2a475e"
    ),
    # 主副标题样式
    plot.subtitle = element_text(
      family = "Roboto"
      size = 15, 
      face = "bold",
      color="#1b2838"
    ),
    plot.title.position = "plot"# 与默认稍有不同
    # 轴文本样式
    axis.text = element_text(size = 10, color = "black"),
    # 轴标题样式
    axis.title = element_text(size = 12)
  )

自定义主题:

# 进一步自定义主题
plt <- plt  +
  theme(
    # 隐藏轴刻度
    axis.ticks = element_blank(),
    # 轴线样式
    axis.line = element_line(colour = "grey50"),
    # 主网格线样式
    panel.grid = element_line(color = "#b4aea9"),
    # 隐藏次要网格线
    panel.grid.minor = element_blank(),
    # 隐藏x轴的主要网格线
    panel.grid.major.x = element_blank(),
    # y轴的主要网格线样式
    panel.grid.major.y = element_line(linetype = "dashed"),
    # 面板背景样式
    panel.background = element_rect(fill = "#fbf9f4", color = "#fbf9f4"),
    # 图背景样式
    plot.background = element_rect(fill = "#fbf9f4", color = "#fbf9f4")
  )

参考资料:https://r-graph-gallery.com

大家有兴趣可以加群,可以在群里讨论,学习,共同进步!




继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存