首页 文章

使用geom_errorbar时未映射线型的图例

提问于
浏览
0

考虑一下数据:

enter code here

group <- rep(c("a", "b"), each=10)
res <- c(sample(20:30,10,T),sample(60:80,10,T) )
sd <- rnorm(20,2)
t <-  rep(1:10,2)
df <- data.frame(t=t,group=group, res=res, sd=sd)

从那我想要这个情节:

ggplot(df, aes(x=t, y=res, 
                     group=group, 
                     colour=group, 
                     shape=group ), linetype="solid")+
  geom_point()+
  geom_errorbar(aes(ymin=res-sd, ymax=res+sd))+
  geom_line(aes(linetype=group))

The problem: 图例未映射美学线型 . 它正确地做了形状和颜色 .

我也尝试将linetype设置为geom_errorbar中的整体映射和linetype = "solid",但结果是相同的 . 见下面的代码 .

ggplot(df, aes(x=t, y=res, 
               group=group, 
               colour=group, 
               shape=group, 
               linetype=group))+
  geom_point()+
  geom_errorbar(aes(ymin=res-sd, ymax=res+sd), linetype="solid")+
  geom_line()

出于显而易见的原因,我不希望错误栏具有不同的行类型 . 对同一个变量进行这么多映射的原因是为了使它在屏幕上漂亮而黑色与白色打印友好 .

我该怎么做这个情节并让图例也映射出线型呢?

1 回答

  • 0

    这是一个选项:

    ggplot(df, aes(x=t, y=res, 
                   group=group, 
                   colour=group, 
                   shape=group, 
                   linetype=group))+
      geom_point()+
      geom_errorbar(aes(ymin=res-sd, ymax=res+sd, 
                        linetype = NULL)) + #remove the mapping
      geom_line()
    

相关问题