2009-10-15 25 views
10

में केवल 1 पहलू में stat_smooth जोड़ना मेरे पास कुछ डेटा है जिसके लिए, एक कारक के एक स्तर पर, एक महत्वपूर्ण सहसंबंध है। दूसरे स्तर पर, कोई नहीं है। इन तरफ से प्लॉटिंग सरल है। Stat_smooth के साथ दोनों को एक पंक्ति जोड़ना, सीधा भी। हालांकि, मैं नहीं चाहता कि लाइन या इसकी भर दो पहलुओं में से एक में प्रदर्शित हो। क्या ऐसा करने के लिए एक सरल तरीका है? शायद किसी भी तरह से लाइनों में से किसी एक के भरने और रंग के लिए एक खाली रंग निर्दिष्ट करना?ggplot2

उत्तर

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

 संबंधित मुद्दे