R语言画图:小提琴图

打印 上一主题 下一主题

主题 946|帖子 946|积分 2838

小提琴图界说:


小提琴图(Violin Plot),是一种集成了箱线图和核密度图特性的数据可视化图形,用于展示多组数据的分布环境和概率密度。




小提琴图的作用:


1.显示数据分布:小提琴图可以或许清晰地展示数据的分布环境,包括数据的中位数、四分位数、离群值等统计信息。通过小提琴形状的宽度和高度,可以直观地比力不同组或条件下数据的分布差别。
2.比力多组数据:将不同基因在不同组织中的表达程度用小提琴图展示,以便研究它们的表达模式是否有显著差别。
3.异常值检测:在小提琴图中,可以观察到小提琴外部的离散数据点,这些数据点每每表示数据中的异常值。可以通过观察离群点的出现环境来判定数据中是否存在异常值。



小提琴图怎么做?


R语言绘制小提琴图



    1. # 代码来源:https://www.r2omics.cn/
    2. # 加载R包,没有安装请先安装  install.packages("包名")
    3. library(tidyverse)
    4. # 读取箱线图数据文件
    5. df = read.delim("https://www.r2omics.cn/res/demodata/boxplot.txt",# 将此处换成你自己电脑里的文件
    6.                 header = T      # 指定第一行是列名
    7. )
    8. # 把数据转换成ggplot常用的类型(长数据)
    9. df = df %>%
    10.   pivot_longer(-1,names_to = "Sample",values_to = "Value")
    11. # 绘图
    12. p = ggplot(df,aes(x=Sample,y=Value,fill=Sample))+
    13.   # stat_boxplot(geom = "errorbar",    # 添加误差线
    14.   #  width=0.3)+
    15.   geom_violin(alpha = 1,              # 透明度
    16.               trim = T,               # 是否修剪尾巴,即将数据控制到真实的数据范围内
    17.               scale = "count",         # 如果“area”(默认),所有小提琴都有相同的面积(在修剪尾巴之前)。如果是“count”,区域与观测的数量成比例。如果是“width”,所有的小提琴都有相同的最大宽度。
    18.                )+
    19.   theme_bw()+                          # 主题
    20.   theme(
    21.     axis.text.x = element_text(angle = 90,
    22.                                vjust = 0.5
    23.     )       # x轴刻度改为倾斜90度,防止名称重叠
    24.   )
    25. p
    复制代码









箱线图和小提琴图合并

  1. # 其实就是在小提琴的图层下再画一个箱线图
  2. p +
  3.   geom_boxplot(width=0.16,
  4.                fill="white",
  5.                outlier.alpha = 0
  6.               )
复制代码










添加显著性标签



  1. library(ggsignif)  # 用于添加显著性标签
  2. p + geom_signif(                         # 添加显著性标签
  3.     comparisons=list(c("Sample1","Sample2"),c("Sample3","Sample4")), # 选择你想在哪组上添加标签
  4.     step_increase = 0.1,
  5.     test="t.test",                     # "t 检验,比较两组(参数)" = "t.test","Wilcoxon 符号秩检验,比较两组(非参数)" = "wilcox.test"
  6.     test.args = list("var.equal" = T), # 等方差
  7.     map_signif_level=F                 # 标签样式F为数字,T为*号
  8.   )
复制代码





免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

灌篮少年

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表