2012-05-25 28 views
6

में एकाधिक घनत्व वाले एकाधिक भूखंड मैं facet_wrap() का उपयोग कर एक सामान्य किंवदंती साझा करने वाले ग्राफ पर कई भूखंड प्राप्त करने का प्रयास कर रहा हूं। भूखंडों में geom_density() का उपयोग करके निर्मित प्रत्येक घनत्व अनुमान 4 घनत्व अनुमान होता है। यह डेटा जैसा दिखता है इसका एक न्यूनतम उदाहरण है। अनुमान के प्रत्येक स्तर के लिए एक घनत्व का अनुमान लगाया जाता है, और xp के प्रत्येक मान के लिए एक अलग साजिश तैयार की जाती है।ggplot2

ggplot(data=esti,aes(x=value)) + geom_density() +facet_wrap(~xp,scales='free_y') 

हालांकि दोनों एक साथ काम नहीं करता है और परिणाम:

library('ggplot2') 
ggplot(data=esti,aes(x=value,colour=estimator)) + geom_density() 

या दो से प्रत्येक में एक घनत्व के साथ पैनल:

> esti 
    estimator  value   xp 
1  OLS Oracle 0.35757317 N= 10 T= 100 
2  OLS Oracle 0.50540655 N= 10 T= 100 
3  OLS Full 0.02276872 N= 10 T= 100 
4  OLS Full 0.53616020 N= 10 T= 100 
5   Lasso 0.00000000 N= 10 T= 100 
6   Lasso 0.30448578 N= 10 T= 100 
7 Adaptive Lasso 0.00000000 N= 10 T= 100 
8 Adaptive Lasso 0.49949267 N= 10 T= 100 
9  OLS Oracle 0.48392914 N= 10 T= 500 
10  OLS Oracle 0.53685915 N= 10 T= 500 
11  OLS Full 0.50565482 N= 10 T= 500 
12  OLS Full 0.61407003 N= 10 T= 500 
13   Lasso 0.38342782 N= 10 T= 500 
14   Lasso 0.52012928 N= 10 T= 500 
15 Adaptive Lasso 0.47951875 N= 10 T= 500 
16 Adaptive Lasso 0.53222172 N= 10 T= 500 

मैं चार घनत्व के साथ एक साजिश निर्माण कर सकते हैं एक त्रुटि में:

> ggplot(data=esti,aes(x=value,colour=estimator)) + geom_density() +facet_wrap(~xp,scales='free_y') 
Error in UseMethod("scale_dimension") : 
    no applicable method for 'scale_dimension' applied to an object of class "NULL" 

मैंने भाग्य के लिए अलग-अलग मूल्यों की कोशिश की है, या बिना किसी किस्मत के इसे पूरी तरह से छोड़ दिया है। मैंने ट्रैक करने की कोशिश की है कि कौन सा ऑब्जेक्ट 'scale_dimension' पर लागू किया जा रहा था, बिना किस्मत के। क्या कोई मुझे प्रबुद्ध कर सकता है?

+2

बस एक अनुमान से काम करता है, लेकिन इसके साथ कुछ करने के लिए हो सकता है तथ्य यह है कि आप प्रति समूह केवल दो मानों पर घनत्व की गणना कर रहे हैं? जब मैं एक बड़े डेटा सेट का उपयोग कर एक समान साजिश बनाता हूं तो मुझे वह त्रुटि नहीं मिलती है। – joran

+0

आपके उत्तर के लिए धन्यवाद जो 'geom_density()' का उपयोग करते समय समस्या थी। जब मैं 'geom_line (stat = 'घनत्व') का उपयोग करने का प्रयास करता हूं तो समस्या वही रहती है, हालांकि ... –

+2

लेकिन .... समस्या एक जैसी है, नहीं? आप अभी भी केवल दो मानों पर घनत्व की गणना कर रहे हैं। – joran

उत्तर

2

जब से मैं दूसरा Joran के सुझाव के लिए एक टिप्पणी नहीं छोड़ सकते यहाँ एक जवाब (यानी, मैं काफी प्रतिष्ठा नहीं है),:

ggplot(data=esti,aes(x=value,colour=estimator)) + geom_density() 

से

ggplot(data=esti,aes(x=value,colour=estimator)) 
+ geom_density() +facet_wrap(~xp,scales='free_y') 
पर जाकर

प्रत्येक अनुमानक/एक्सपी जोड़ी के लिए केवल 2 डेटा पॉइंट शेष हैं। ऐसा लगता है, यह घनत्व की गणना करने के लिए पर्याप्त नहीं है। उदाहरण के लिए, निम्न कोड पंक्ति काम करता है (ध्यान दें data=rbind(esti,esti))

ggplot(data=rbind(esti,esti),aes(x=value,colour=estimator)) 
+ geom_density() +facet_wrap(~xp,scales='free_y') 

इसके अलावा, अगर आप geom_bar द्वारा geom_density की जगह, यह

ggplot(data=esti,aes(x=value,colour=estimator)) 
+ geom_bar() +facet_wrap(~xp,scales='free_y')