2009-10-15 87 views
10

我有一些數據,在一個因子水平上存在顯着相關性。在另一個層面上,沒有一個。繪製這些並排很簡單。使用stat_smooth向兩者添加一條直線也很簡單。但是,我不希望將行或其填充顯示在兩個方面之一中。有沒有簡單的方法來做到這一點?也許爲某一行的填充和顏色指定一個空白顏色?將stat_smooth添加到ggplot2中的僅1個方面

回答

28

不要去想採摘面,認爲提供數據的一個子集stat_smooth:

ggplot(df, aes(x, y)) + 
    geom_point() + 
    geom_smooth(data = subset(df, z =="a")) + 
    facet_wrap(~ z) 
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")) 
+0

這聽起來像一個合理的解決方案。一般來說,如果你使用方面,你真的想在每個方面都做同樣的事情。如果你不這樣做,你最好使用其他方法。看看這個問題(和我的答案)以獲取更多信息:http://stackoverflow.com/questions/1532535/showing-multiple-axis-labels-using-ggplot2-with-facetwrap-in-r – Harlan 2009-10-15 14:34:07