R 从组合geom_线()和geom_桥()的图例中删除形状

R 从组合geom_线()和geom_桥()的图例中删除形状,r,ggplot2,R,Ggplot2,我想创建一个由变量(Var1)着色的geom_line()图形,然后根据不同的变量(Var2)用与geom_line()相同的颜色绘制geom_point()图形 在阅读了很多关于这方面的内容,但找不到任何可以解释为同一问题的内容后,我尝试了以下内容: ggplot(data, aes(X, Y)) + geom_line(aes(color = Var1)) + geom_point(data = subset(data, Var2 != 0), aes(shape = Var2, co

我想创建一个由变量(Var1)着色的geom_line()图形,然后根据不同的变量(Var2)用与geom_line()相同的颜色绘制geom_point()图形

在阅读了很多关于这方面的内容,但找不到任何可以解释为同一问题的内容后,我尝试了以下内容:

 ggplot(data, aes(X, Y)) +
 geom_line(aes(color = Var1)) +
 geom_point(data = subset(data, Var2 != 0), aes(shape = Var2, colour = Var1), size = 3) + 
 scale_color_manual(values=c("#7CAE00", "#00BFC4", "#000000", "#C77CFF")) +
 scale_x_continuous(breaks=seq(0,30,5)) +
 theme_bw()

这导致了上述问题。此图的问题在于,第二个图例的两个ID都是圆,其中一个是圆,另一个是三角形。理想情况下,我希望它只是一条没有任何形状的彩色线条

我也试过:

 ggplot(data, aes(X, Y)) +
 geom_line(aes(color = Var1)) +
 geom_point(data = subset(data, Var2 != 0), aes(shape = Var2), size = 3) + 
 scale_color_manual(values=c("#7CAE00", "#00BFC4", "#000000", "#C77CFF")) +
 scale_x_continuous(breaks=seq(0,30,5)) +
 theme_bw()  

此图形的问题在于图形中的形状不是由颜色填充的

这是我的数据

dput(data)
structure(list(X = c(0L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 
10L, 11L, 12L, 13L, 14L, 15L, 0L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 
8L, 9L, 10L, 11L, 12L, 13L, 14L, 15L, 16L, 17L, 18L, 19L, 20L, 
21L, 22L, 23L, 24L), Y = c(1L, 1L, 1L, 2L, 4L, 13L, 18L, 19L, 
21L, 24L, 34L, 43L, 70L, 90L, 129L, 169L, 1L, 3L, 3L, 3L, 3L, 
4L, 21L, 79L, 157L, 229L, 323L, 470L, 655L, 889L, 1128L, 1701L, 
2036L, 2502L, 3089L, 3858L, 4636L, 5883L, 7375L, 9172L, 10149L
), Var1 = structure(c(2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L), .Label = c("", 
"ID1", "ID2"), class = "factor"), Var2 = structure(c(2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 4L, 2L, 2L), .Label = c("", "0", "Point1", "Point2"
), class = "factor")), row.names = c(NA, -41L), class = "data.frame")
这个怎么样

ggplot(data, aes(X, Y))+
geom_line(aes(color = Var1)) +
  geom_point(data = subset(data, Var2 != 0), aes(shape = Var2, color=Var1), size = 3) + 
  scale_color_manual(values=c("#7CAE00", "#00BFC4", "#000000", "#C77CFF")) +
  scale_x_continuous(breaks=seq(0,30,5)) +
  theme_bw()+
  guides(colour = guide_legend(override.aes = list(shape = NA)))

在发布之前没有看到d.b的评论,这基本上是另一个问题的建议答案!