如何在图形 ggplot 中制作显着性条

问题描述 投票:0回答:1

我有这样一个数据

df<- structure(list(Names = c("Mine", "Mine", "Mine"), group = c("First", 
"Second", "Third"), median = c(10.011, 16.56, 18.21), SD = c(0.2345, 
0.3556, 0.037)), class = "data.frame", row.names = c(NA, -3L))

我是这样画的

ggplot(df, aes(x = group, y = median, color = Names)) +
  geom_point(size = 3) +
  geom_line(aes(group = Names), color = "black", linetype="dashed") +
  geom_errorbar(aes(ymin = median - SD, ymax = median + SD))+
  scale_x_discrete(limit = c("First", "Second", "Third"))

不过,我想在上面加上一条线来表示重要性

我有 p 值作为这样的第二个数据

df2<- structure(list(Accession = "Mine ", Third_Second = 0.438, First_Second = 0.0234, 
    First_third = 0.035), class = "data.frame", row.names = c(NA, 
-1L))

如果有人有意见,我想做一个这样的图?

r ggplot2
1个回答
0
投票

一个选项是手动添加条形和星号

library(tibble)
library(ggplot2)


sig_bar_1 <- tibble(x = c('First', 'First', 
                          'Third', 'Third'),
                    y = c(20,20.2,20.2,20))

sig_bar_2 <- tibble(x = c('Second','Second','Third','Third'),
                    y = c(19.5, 19.7, 19.7, 19.5))

sig_bar_3 <- tibble(x = c('First','First','Second','Second'),
                    y = c(19,19.2,19.2,19))

ggplot(df, aes(x = group, y = median, group = Names)) +
  geom_point(size = 3) +
  geom_line(color = "black", linetype="dashed") +
  geom_errorbar(aes(ymin = median - SD, ymax = median + SD))+
  scale_x_discrete(limit = c("First", "Second", "Third")) +
  geom_line(data = sig_bar_1,
            aes(x = x, y = y, group = 1)) +
  geom_line(data = sig_bar_2,
            aes(x = x, y = y, group = 1)) +
  geom_line(data = sig_bar_3,
            aes(x = x, y = y, group = 1)) +
  annotate('text', x = 2, y = 20.3, label = '*', size = 8) +
  annotate('text', x = 1.5, y = 19.3, label = '*', size = 8)

创建于 2023-03-31 与 reprex v2.0.2

© www.soinside.com 2019 - 2024. All rights reserved.