在图例中,geom_hline的颜色不正确 [ggplot2]

3

我在 Stack Overflow 上查找了一下,但似乎找不到解决方案。 我已经在 ggplot2 中使用了 geom_point 和 geom_hline,并为两者都得到了令人满意的图例。 但是,在图中有一条黑色线和一条蓝色线,但在图例中它们都是黑色的 - 我应该如何在图例中将它们正确显示成相应的颜色?

mcgc <- ggplot(sam, aes(x = Person,y = mm, colour = X)) +
                  geom_point(size = 0.75) +
                  scale_colour_gradient2(high="red", mid="green", limits=c(0,1), guide = "colourbar") +
                  geom_hline(aes(yintercept = mad, linetype = "mad"), colour = "blue", size=0.75, show_guide = TRUE) +
                  geom_hline(aes(yintercept = mmad, linetype = "mmad"), colour = "black", size=0.75, show_guide = TRUE)  +
                  facet_wrap(~ Plan, scales = "free", ncol = 4) +
                  scale_linetype_manual(name = "Plan of Health Care", values = c("mad" = 1, "mmad" = 1),guide = "legend")

我相信我在这里重写了某些东西...只是不确定是哪里(对ggplot不熟悉)

数据:

Plan  Person X       mm  mad mmad
1  1 95 0.323000 0.400303 0.12
1  2 275 0.341818 0.400303 0.12
1  3  2 0.618000 0.400303 0.12
1  4 75 0.320000 0.400303 0.12
1  5 13 0.399000 0.400303 0.12
1  6 20 0.400000 0.400303 0.12
2  1 219 0.393000 0.353350 0.45
2  2 50 0.060000 0.353350 0.45
2  3 213 0.390000 0.353350 0.45
2  4 204 0.496100 0.353350 0.45
2  5 19 0.393000 0.353350 0.45
2  6 201 0.388000 0.353350 0.45

计划最高涨到40,但我这里只包含了一小段数据...
更新:对于那些可能提供帮助的人——我绘制数据的代码是错误的。我已经进行了更新。

2
如果您将此问题编辑以包括您的数据(例如sammad以及mmad的值),使其成为可重现的示例,那么您更有可能获得帮助。 - jlhoward
已更新我的问题,包括数据。 - user2726449
1个回答

6

由于您已经在数据点中使用了颜色,因此您无法使用scale_color_..来显示图例中的颜色。解决方法是使用函数guides()并使用参数override.aes=为图例添加您的颜色。将此行添加到您现有的代码中。

  + guides(linetype=guide_legend(override.aes=list(colour = c("blue","black"))))

enter image description here


太棒了 - 我知道问题出在这段代码上,但一直把linelinetypecolour放错位置。你真是个天才! - user2726449

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接