Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 使用geom_smooth将一条直线拟合到多水平变量的平均值_R_Ggplot2 - Fatal编程技术网

R 使用geom_smooth将一条直线拟合到多水平变量的平均值

R 使用geom_smooth将一条直线拟合到多水平变量的平均值,r,ggplot2,R,Ggplot2,我有这个 我创建了一个在y轴“值”和x轴上表示“列_S”每个级别的图,其中包含从S1到S10的级别。所有这些都按“VS”和“Inst”(带有刻面网格)以及带有颜色的“Estatus”进行分组 na.omit(data) %>% group_by(VS,Estatus,Inst, Columna_S) %>% summarise(media = mean(value), desvio = sd(value),

我有这个

我创建了一个在y轴“值”和x轴上表示“列_S”每个级别的图,其中包含从S1到S10的级别。所有这些都按“VS”和“Inst”(带有刻面网格)以及带有颜色的“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()  

在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() 

你可以考虑通过各种方法:< /P>
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()

谢谢@StupidWolf,尽管我试图在y轴上设置相同的比例
scale\u y\u continuous(breaks=seq(0100,by=25),limits=c(0100))
它没有正确绘制se。我认为这与我在x轴上有因子有关。不管怎样,谢谢你的回答,这很有帮助。是的,我在制作情节时注意到。。问题是,在平滑时,错误条超出了您的限制。因此,您可以更改平滑参数,也可以使用se=FALSE忽略标准误差