从图例中删除错误栏 (ggplot2)

Remove errorbars from legend (ggplot2)

我用以下命令绘制了一个图:

ggplot(data=test_mod, aes(x=realDist , y=1-value, color=as.factor(foo) , size=as.factor(foo) )) +
  stat_summary(fun.y=mean, geom="line", alpha=0.85 ) + 
  stat_summary(fun.y=mean, geom="point", pch=21, fill="white", size=2 ) +
  #stat_summary(fun.data=mean_cl_normal, geom="errorbar", width=8, size = 0.5) + 
  theme_bw(base_size = 15, base_family = "Palatino") + 
  theme(legend.key = element_blank()) 

我得到了这个图例:

但是,当我取消注释命令的第 3 行时:

ggplot(data=test_mod, aes(x=realDist , y=1-value, color=as.factor(foo) , size=as.factor(foo) )) +
  stat_summary(fun.y=mean, geom="line", alpha=0.85 ) + 
  stat_summary(fun.y=mean, geom="point", pch=21, fill="white", size=2 ) +
  stat_summary(fun.data=mean_cl_normal, geom="errorbar", width=8, size = 0.5) + 
  theme_bw(base_size = 15, base_family = "Palatino") + 
  theme(legend.key = element_blank()) 

我得到的图例略有不同:

注意 细线 在我开始使用 errorbar 进行绘图后穿过点。

如何去除图例中出现的那些细线?

您可以使用 show_guide=FALSE. show.legend=FALSE.

关闭该元素的图例
ggplot(data=test_mod, aes(x=realDist , y=1-value, color=as.factor(foo) , size=as.factor(foo) )) +
  stat_summary(fun.y=mean, geom="line", alpha=0.85 ) + 
  stat_summary(fun.y=mean, geom="point", pch=21, fill="white", size=2 ) +
  stat_summary(fun.data=mean_cl_normal, geom="errorbar", width=8, size = 0.5, show.legend=FALSE) + 
  theme_bw(base_size = 15, base_family = "Palatino") + 
  theme(legend.key = element_blank())

您可以简单地将"errorbar"行代码的位置切换到"point"行代码之上。这样,点将覆盖细线而不是相反。

ggplot(data=test_mod, aes(x=realDist , y=1-value, color=as.factor(foo) , size=as.factor(foo) )) +
  stat_summary(fun.y=mean, geom="line", alpha=0.85 ) + 
  stat_summary(fun.data=mean_cl_normal, geom="errorbar", width=8, size = 0.5) +
  stat_summary(fun.y=mean, geom="point", pch=21, fill="white", size=2 ) + 
  theme_bw(base_size = 15, base_family = "Palatino") + 
  theme(legend.key = element_blank())