使用scale_linetype_manual添加线型图例失效求助
解决ggplot图例不显示问题
问题出在你没有把linetype作为映射变量放入aes()中,而是直接在geom_line里设置参数,ggplot无法识别需要生成图例。以下是修正后的代码:
plot <- data_this_shop %>% ggplot(aes(x=id, y= price)) + geom_point(size = 1.5) + # 把linetype放入aes,指定对应图例标签 geom_line(aes(y=mean(price), linetype = "Mean price")) + geom_line(data = data_other_shops, aes(x=id, y=lower_95, linetype = "95% CI")) + geom_line(data = data_other_shops, aes(x=id, y=upper_95, linetype = "95% CI")) + # 对应标签设置线型 scale_linetype_manual( values = c("Mean price" = "dashed", "95% CI" = "solid"), labels = c("Mean price", "95% CI") )
关键说明:
- 所有需要在图例中展示的线型,必须将
linetype定义在aes()内部,绑定对应的标签文本 scale_linetype_manual的values参数通过键值对,把标签和具体线型绑定,确保对应关系正确- 两条实线使用同一个标签,图例中只会显示一个"95% CI"的条目,符合你的需求
内容的提问来源于stack exchange,提问作者learner
相关产品推荐
相关产品推荐

