1

我有这个数据框

我在 y 轴“值”和 x 轴上创建了一个图,表示“Column_S”的每个级别,其中包含从 S1 到 S10 的级别。所有这些都按“VS”和“Inst”(带有 facet_grid)和带有颜色的“Estatus”分组。

na.omit(data) %>% 
  group_by(VS,Estatus,Inst, Columna_S) %>% 
  summarise(media = mean(value), 
            desvio = sd(value),                             
            error_est = desvio / sqrt(n()),            
            intervalo_sup = media + (2*error_est),      
            intervalo_inf = media - (2*error_est)) -> stats

ggplot() +  
  geom_errorbar(
    data = stats,   
    aes(x = Columna_S,
        ymin = intervalo_inf,
        ymax = intervalo_sup,
        color = Estatus   
    ), width = 0.4 )+
  geom_point(data = stats,
             aes(x = Columna_S,
                 y = media,
             color = Estatus))+
  facet_grid(Inst ~ VS, scales = "free") +
  theme_classic()  

但是,我不想使用每个平均值的独立点geom_smooth来绘制一条适合沿 x 轴的平均值的线(加上标准误差)。

我已经尝试了下面的代码,但它没有产生预期的结果。

na.omit(data) %>% 
  ggplot(aes(x=Columna_S,y=value,colour=Estatus, na.rm = TRUE) ) +
  geom_smooth(aes(fill=Estatus,na.rm = TRUE)) +
  scale_y_continuous(breaks = seq(0,100, by=25), limits=c(0,100))+
  facet_grid(Institution~Value_system, scales = "free")+
  theme_classic()  
4

1 回答 1

2

您在 x 轴上有因素,我不太确定将一条平滑线穿过它是否有意义,但如果这就是您所需要的,它就像这样:

data %>% 
filter(!is.na(Columna_S)) %>%
ggplot(aes(x=Columna_S,y=value,colour=Estatus)) +
geom_smooth(aes(group=Estatus)) +
facet_grid(Inst~VS, scales = "free")+
theme_classic() 

在此处输入图像描述

您可以考虑通过所有方式设置一条线:

data %>% 
filter(!is.na(Columna_S)) %>%
ggplot(aes(x=Columna_S,y=value,colour=Estatus)) +
stat_summary(aes(group=Estatus),fun=mean,geom="line") +
facet_grid(Inst~VS, scales = "free")+
theme_classic()

在此处输入图像描述

于 2021-02-06T10:55:07.627 回答