r(ggplot2折线图):更改误差线的线型会在图例中对其进行更改

问题描述 投票:1回答:1

我有一个这样的折线图:graph

df <- data.frame(x = c(1,1,2,2,1,1,2,2), 
  y = c(1.5,1.9,2.1,1.6,1.4,1.8,2.0,1.7), 
  error = c(0.2), 
  group = c("g1","g2","g1","g2","g3","g4","g3","g4"))

ggplot(df, aes(x = x, y = y, color = group, linetype = group)) + 
  geom_point() + geom_line() + 
  geom_errorbar(aes(ymin = y - error, ymax = y + error),
                linetype = 1, width = 0.5,                                 
                position = position_dodge(width = 0.2)) +
  scale_color_manual(values = c("g1"="Black", "g2"="Grey", "g3"="Black", "g4"="Grey")) +
  scale_linetype_manual(values=c("g1"=1,"g2"=1,"g3"=2,"g4"=2))

我需要将其设置为黑白,因此在几个组中,我同时使用了colorlinetype。更改线型时,尽管线是点缀的,但我还是要使误差线保持实心,因此我覆盖了误差线的线型。由于某些原因,这也会更改图例,因此不再清楚哪一行是。

我知道这在某种程度上取决于color = group中的aes,因为当我只有线型时,图例就很好了。由于某种原因,我只是找不到同时处理线型,颜色和实体错误栏的方法。有人知道这是为什么吗?

r ggplot2 linegraph
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.