美文网首页
R语言 ggplot2 柱形图添加误差条和差异显著性标识

R语言 ggplot2 柱形图添加误差条和差异显著性标识

作者: 风知秋 | 来源:发表于2024-04-01 21:05 被阅读0次

    绘制分组柱状图;柱状图上添加误差线;组内柱子之间添加显著性差异表示(字母表示)。

    大概思路是首先绘制分组柱形图,然后利用 geom_errorbar 和 geom_text 直接添加;因为柱形图使用的是单个数据绘制,所以标准差以及差异是否显著就在 R 语言之外进行计算,而后整合进表格进行读取。

    示例文件将标准差写进表格中了,差异是否显著也可以仿照标准差写进表格。具体见以下代码:

    library(ggplot2)

    library(reshape2)

    # 创建示例数据集

    data <- data.frame(

      Category = c("A", "B", "C", "D", "E"),

      Value1 = c(23, 45, 56, 78, 34),

      Value2 = c(32, 54, 65, 82, 45),

      Value1_sd = c(5, 4, 6, 7, 5),

      Value2_sd = c(4, 6, 5, 8, 4)

    )

    # 将数据转换成适合 ggplot2 的长格式,同时保留标准差信息

    data_long <- melt(data, id.vars = c("Category", "Value1_sd", "Value2_sd"), variable.name = "Variable")

    # 使用 ggplot2 创建分组柱状图

    p <- ggplot(data_long, aes(x = Category, y = value, fill = Variable)) +

      geom_bar(stat = "identity", position = "dodge") +

      labs(title = "分组柱状图示例", x = "类别", y = "值", fill = "变量")

    # 添加误差条

    p + geom_errorbar(aes(ymin = value - ifelse(Variable == "Value1", Value1_sd, Value2_sd),

                          ymax = value + ifelse(Variable == "Value1", Value1_sd, Value2_sd)),

                      position = position_dodge(width = 0.9), width = 0.25) 

    p + geom_errorbar(aes(ymin = value - ifelse(Variable == "Value1", Value1_sd, Value2_sd),

                          ymax = value + ifelse(Variable == "Value1", Value1_sd, Value2_sd)),

                      position = position_dodge(width = 0.9), width = 0.25)  +

           geom_text(aes(label = ifelse(Variable == "Value1", "a", "b")),

                  position = position_dodge(width = 0.9), vjust = -0.5)

    类似的,贴一个自己的数据写的命令,有一些参数可供参考。

    ggplot(x, aes(x = Trait, y = Index, fill = Zone)) +

    geom_bar(stat = "identity", position = "dodge") +

    geom_errorbar(aes(ymin = Index, ymax =Index + SD), width = 0.2, position = position_dodge(0.9)) +

    geom_text(aes(label = Significance, y = Index + SD), position = position_dodge(width = 0.9), vjust = -0.5)

    大概就是这个意思,其余细节有待进一步调整美化。

    相关文章

      网友评论

          本文标题:R语言 ggplot2 柱形图添加误差条和差异显著性标识

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