18

我有一些数据,在一个因素的一个层面上,它们之间存在显着的相关性。在另一个层面,没有。并排绘制这些图很简单。使用 stat_smooth 为它们添加一行,也很简单。但是,我不希望线条或其填充显示在两个方面之一中。有没有一种简单的方法可以做到这一点?也许以某种方式为其中一条线的填充和颜色指定空白颜色?

4

2 回答 2

40

不要考虑选择方面,考虑将数据的子集提供给 stat_smooth:

ggplot(df, aes(x, y)) +
  geom_point() + 
  geom_smooth(data = subset(df, z =="a")) + 
  facet_wrap(~ z)
于 2009-10-15T14:55:42.553 回答
3

当然,我后来回答了我自己的问题。虽然,有没有更少的黑客方式来做到这一点?我想知道是否可以为不同的面板安装不同的功能。

一种技术是使用 + scale_fill_manual 和 scale_colour_manual。它们允许人们指定将使用什么颜色。所以,在这种情况下,假设你有

a<-qplot(x, y, facets=~z)+stat_smooth(method="lm", aes(colour=z, fill=z))

您可以使用以下内容指定填充颜色和颜色。请注意,第二种颜色是清晰的,因为它使用十六进制值,最后两个数字表示透明度。所以,00=清除。

a+stat_fill_manual(values=c("grey", "#11111100"))+scale_colour_manual(values=c("blue", "#11111100"))
于 2009-10-15T06:24:34.330 回答