R 如何在ggplot2中混合图例键的不同符号?

R 如何在ggplot2中混合图例键的不同符号?,r,ggplot2,R,Ggplot2,我有下面的代码生成这个图 cols <- brewer.pal(n = 3, name = 'Dark2') p4 <- ggplot(all.m, aes(x=xval, y=yval, colour = Approach, ymax = 0.95)) + theme_bw() + geom_errorbar(aes(ymin= yval - se, ymax = yval + se), width=5, position=pd) + geom_line(positi

我有下面的代码生成这个图

cols <- brewer.pal(n = 3, name = 'Dark2')

p4 <- ggplot(all.m, aes(x=xval, y=yval, colour = Approach, ymax = 0.95)) + theme_bw() + 
  geom_errorbar(aes(ymin= yval - se, ymax = yval + se), width=5, position=pd) + 
  geom_line(position=pd) + geom_point(position=pd) + 
  geom_hline(aes(yintercept = cp.best$slope, colour = "C2P"), show_guide = FALSE) + 
  scale_color_manual(name="Appraoch", breaks=c("C2P", "P2P", "CP2P"), values =  cols[c(1,3,2)]) + 
  scale_y_continuous(breaks = seq(0.4, 0.95, 0.05), "Test AUROC") +
  scale_x_continuous(breaks = seq(10, 150, by = 20), "# Number of Patient Samples in Training")

p4 <- p4 + theme(legend.direction = 'horizontal', 
      legend.position = 'top', 
      plot.margin = unit(c(5.1, 7, 4.5, 3.5)/2, "lines"), 
      text = element_text(size=15), axis.title.x=element_text(vjust=-1.5), axis.title.y=element_text(vjust=2))   
p4

cols您可以使用
override.aes
将以下代码行添加到绘图中,从图例中删除点标记:

guides(colour=guide_legend(override.aes=list(shape=c(NA,16,16))))

override.aes
更改图例而不更改绘图。在这种情况下,我们希望更改图例点标记,因此我们希望更改点的
形状。点标记编号16是一个填充圆(请参见
?pch
),我们希望保留两个标记,但我们使用
NA
删除图例中第一个项目的点标记。

另一种方法是在
geom\u Point()中使用
show\u guide=FALSE
。这将从所有图例值中删除点标记,而不是仅删除
C2P
@eipi10的点标记。如果我希望绘图的形状也具有与传说相对应的不同形状,那该怎么办?然后在aes中添加形状美学,就像您在颜色或填充中所做的那样。如果要选择自己的点形状,还可以添加“缩放形状”手动语句。