R 如何使用美学为geom_hline()上色?
geom_hline似乎忽视了美学,是我遗漏了什么,还是这是一个bugR 如何使用美学为geom_hline()上色?,r,ggplot2,R,Ggplot2,geom_hline似乎忽视了美学,是我遗漏了什么,还是这是一个bug df <- data.frame( "x"=rep(c(1,2,3),2), "y"=rep(c(1,2,3),2), "g"=rep(c(TRUE,FALSE),each=3) ) ggplot(df,aes(x=x,y=y)) + geom_point() + geom_hline(yintercept = 1.5,aes(colour=g)) + facet_w
df <- data.frame(
"x"=rep(c(1,2,3),2),
"y"=rep(c(1,2,3),2),
"g"=rep(c(TRUE,FALSE),each=3)
)
ggplot(df,aes(x=x,y=y)) +
geom_point() +
geom_hline(yintercept = 1.5,aes(colour=g)) +
facet_wrap(~g)
yintercept
也必须位于aes
内部,才能使颜色映射正常工作
ggplot(df,aes(x=x,y=y)) +
geom_point() +
geom_hline(aes(yintercept = 1.5, colour=g)) +
facet_wrap(~g)
我不知道为什么geom_hline
会这样工作。为了与其他几何图形保持一致,似乎yintercept
应该独立于其他美学。例如,在这种情况下,颜色
的美学效果与预期一致:
ggplot(df,aes(x=x,y=y)) +
geom_point() +
geom_line(y=1, aes(colour=g)) +
facet_wrap(~g)
更新:感谢@Anonymouscoward为我提供了geom\u abline/vline/hline
的帮助,这说明这些geom无法识别x
和y
美学:
与大多数其他几何图形不同,这些几何图形不会从绘图默认值继承美学,因为它们不理解通常在绘图中设置的x和y美学
有关更多详细信息,请参阅帮助。谢谢@eipi10我找不到原因,因此我在ggplot2 github repo上打开了一个问题:在内?geom_abline
请参阅详细信息
部分。它似乎是一个或另一个,而不是一进一出的aes
,因为听起来它创建行的方式是唯一的。在?geom_abline
中对参数yintercept
的帮助说明:“控制线路位置的参数。如果设置了这些选项,数据
、映射
和显示图例
将被覆盖。”这正是OP示例中发生的情况。geom_h/v/abline
现在将在覆盖映射时发出警告。请参阅,并且正在考虑覆盖用户提供的数据的行为请参阅:
ggplot(df,aes(x=x,y=y)) +
geom_point() +
geom_line(y=1, aes(colour=g)) +
facet_wrap(~g)