为什么线切割点在GGR PLOT的不同绘图的图例中显示相同的颜色

为什么线切割点在GGR PLOT的不同绘图的图例中显示相同的颜色,r,ggplot2,R,Ggplot2,我将美学映射到一个形状,并创建了一个手动形状比例。但是连接两条不同线的点的线在图例中显示相同的颜色 p <- ggplot(data=data_read) + stat_summary(colour="blue", fun.y=mean, geom="line", size=1.0, aes(x=factor(x), y=A, group=1), show.legend=T) + stat_summary(fun.y=mean, geom="point", aes(x=fa

我将美学映射到一个形状,并创建了一个手动形状比例。但是连接两条不同线的点的线在图例中显示相同的颜色

p <- ggplot(data=data_read) + stat_summary(colour="blue", fun.y=mean, 
       geom="line", size=1.0, aes(x=factor(x), y=A, group=1), show.legend=T) +
stat_summary(fun.y=mean, geom="point", aes(x=factor(x), y=A, shape="A"),
             size=5,col="black") +
stat_summary(colour="green", fun.y=mean, geom="line", size=1.0, aes(x=factor(x),
             y=B, group=1), show.legend=T) +
stat_summary(fun.y=mean, geom="point", aes(x=factor(x), y=B, shape="B"), 
             size=3, col="black") +
scale_shape_manual("title", values=c("A"="\U0394", "B"="*"))

p + theme(legend.position = c(0.5,0.5),
          legend.text = element_text(size = 15, colour = "black"), 
          legend.title = element_text(size = 15, colour = "black")) +
coord_cartesian(ylim = c(10,30), expand = FALSE) +
expand_limits(x=0, y=10)  

p您需要将数据列映射到
aes
内部的颜色,而不是对
aes
外部的线颜色进行硬编码(或者像处理形状一样,创建“人工”映射到
aes
内部的颜色),以便获得具有与绘图中的线颜色匹配的颜色的图例线。此外,尽管您尚未显示数据,但看起来您的数据是“宽”格式的。如果您将其转换为“long”形式,您可能只需要为每个geom调用一次
stat\u summary
,就可以使用数据列映射到颜色和形状,而不是当前代码中的硬编码映射。非常感谢。成功了。我为aes内部的颜色创建了“人工”映射,并使用
scale\u color\u manual
获得线条颜色,并获得与线条颜色匹配的图例线条