ggplot2中geom_path无法手动设置分组线型的问题
问题原因
scale_linetype_manual 生效的核心前提是你已经在aes()中将linetype属性映射到分组变量。你的现有代码里仅在geom_path中绑定了颜色和分组的映射,没有做线型和分组的绑定,因此线型标度找不到对应的映射维度,所有线条都会默认使用全局实线样式,配置自然不生效。
修正代码
只需要在geom_path的美学映射中增加linetype = Reconstruction即可。注意你当前配置的"dotted"是点线,如果需要常规短虚线可以替换为"dashed",修正后的完整绘图代码如下:
ggplot(aes(y = Estimate, x = Year, fill = Reconstruction), data = bestFit) + geom_ribbon(aes(ymin = Lo95CI, ymax = Hi95CI, fill = Reconstruction), alpha = 0.25) + geom_point(aes(colour = Reconstruction)) + # 新增线型和分组的映射 geom_path(aes(colour = Reconstruction, linetype = Reconstruction), size = 1) + # 如果需要显示2007年的刻度,把seq步长从2改成1即可 scale_x_continuous(breaks = seq(2006, 2008, 1)) + scale_fill_manual(values = c("#F8766D", "#00BA38", "#619CFF")) + scale_color_manual(values = c("#F8766D", "#00BA38", "#619CFF")) + # 前两个模型输出组为实线,第三个外部验证组为点线/虚线 scale_linetype_manual(values = c("solid", "solid", "dotted"))
补充说明
- 外部验证组
Extl的置信区间列全部为NA,geom_ribbon会自动跳过该组的置信区间绘制,不需要额外处理 - 点元素不需要线型属性,因此
geom_point中不需要加线型映射,避免出现不必要的警告
内容的提问来源于stack exchange,提问作者ZombiePlan37
相关产品推荐
相关产品推荐

