R 从图例(ggplot2)中删除错误条

R 从图例(ggplot2)中删除错误条,r,plot,ggplot2,legend,R,Plot,Ggplot2,Legend,我使用以下命令绘制了一个绘图: 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 ) + #sta

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

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\u guide=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()) 

尽管是一个可行的解决方案,@nongkrong的答案解决了问题的核心。我不得不接受这一点,但你的回答也给了我一个重要的启示。不知道执行顺序会影响图纸。谢谢@很高兴它帮助了你!只是一个提出类似问题的指针:确保在你的问题中包含一个可复制的例子。这样,我就可以运行您提供的代码,得到与您完全相同的图形。@user4786271有几种可能的方法。通常,您希望提供一个最小的可复制示例。您可以自己制作一个(例如
data.frame(x=1:100,y=1:100,z=1:100)
,使用一个内置数据集(例如
mtcars
),或者提供
dput(test\u mod)
的输出,如果它不是太大的话。有关详细信息,请阅读。
show\u指南
已被弃用。现在改为
show.legend