ggplot2图例无法显示问题求助:附相关代码寻求解决
ggplot2图例不显示问题解决方法
你的代码里图例不显示的核心原因是:在geom_line()中直接指定了col/color参数,覆盖了aes()里的颜色映射定义。ggplot2只有通过aes()定义的映射关系,才会生成对应的图例项,手动设置的颜色不会被识别为图例的一部分。
修改后的代码
ggplot(data = dane2, aes(x = iterations, y = powers, color = 'Moc testu')) + geom_line()+ # 移除手动设置的col='red' geom_line(data = dane3, aes(x = iterations, y = blad_II_r, color = 'Błąd II rodzaju'))+ # 移除手动设置的color='orange' ggtitle('Błąd II rodzaju i moc testu w zależności od ilości iteracji') + xlab('iteracja') + ylab('') + ylim(-0.01, 1) + scale_color_manual(name = "Legenda", values = c("Moc testu" = "red", "Błąd II rodzaju" = "orange"))+ theme(legend.position = 'right')
关键说明
- 保留
aes()中的color映射:这是让ggplot2识别图例项的核心,把每条线的名称定义在color参数里,后续通过scale_color_manual绑定对应颜色。 - 移除
geom_line()的手动颜色设置:避免覆盖映射关系,让颜色完全由scale_color_manual统一控制。 - 简化图例标题设置:直接在
scale_color_manual的name参数里设置图例标题,不需要额外的guides()语句(保留也可,但代码更简洁)。
内容的提问来源于stack exchange,提问作者Kacper Kaszuba
相关产品推荐
相关产品推荐

