2013-07-20 9 views
7

मुझे द्विपक्षीय वितरण के घनत्व कार्य को आकर्षित करने के लिए अपना कार्य लिखना है और इसलिए उचित ग्राफ जब n = 20 और p = 0.1,0.2, ..., 0.9 खींचें। इसके अलावा मुझे ग्राफ पर टिप्पणी करने की ज़रूरत है।आर, द्विपदीय वितरण का ग्राफ

मैंने कोशिश की;

graph <- function(n,p){ 
       x <- dbinom(0:n,size=n,prob=p) 
       return(barplot(x,names.arg=0:n)) 
      } 


    graph(20,0.1) 
    graph(20,0.2) 
    graph(20,0.3) 
    graph(20,0.4) 
    graph(20,0.5) 
    graph(20,0.6) 
    graph(20,0.7) 
    graph(20,0.8) 
    graph(20,0.9) 

    #OR 
    graph(20,scan()) 

मेरा पहला सवाल: वहाँ किसी भी तरह से इतना है कि मैं scan() का उपयोग कर को छोड़कर लाइन graph(20,p) कई बार लिख करने की जरूरत नहीं है?

मेरे दूसरे प्रश्न:

मैं एक डिवाइस में ग्राफ देख सकते हैं या ENTER हिट करने के लिए अगले ग्राफ देखना चाहते हैं करना चाहते हैं। मैंने

par(mfcol=c(2,5)) 
    graph(20,0.1) 
    graph(20,0.2) 
    graph(20,0.3) 
    graph(20,0.4) 
    graph(20,0.5) 
    graph(20,0.6) 
    graph(20,0.7) 
    graph(20,0.8) 
    graph(20,0.9) 

लिखा लेकिन ग्राफ बहुत छोटा है। मैं ग्राफ लाइन n = 20 और p = वह मान जो मैं ग्राफ को आकर्षित करने के लिए उपयोग करता हूं, के साथ ग्राफ को अच्छी तरह से प्रस्तुत कैसे कर सकता हूं? [हालांकि यह पर कॉल करने के बाद mtext() लिखकर किया जा सकता है लेकिन ऐसा करने के लिए मुझे एक समान लिखना है लाइन कुछ बार। इसलिए मैं इसे फ़ंक्शन सहित करना चाहता हूं। ]

मेरे आखिरी सवाल:

टिप्पणी के बारे में। ग्राफ दिखा रहे हैं कि सफलता की संभावना के रूप में, पी बढ़ रहा है, ग्राफ सही हो रहा है, यानी, ग्राफ सही है।

program का उपयोग कर ग्राफ पर टिप्पणी करने का कोई तरीका है?

+0

पी के कई मूल्यों के माध्यम से जाने के लिए एक लूप या 'लापली' पर विचार करें। – Thomas

उत्तर

4

यहां mapply का एक काम है क्योंकि आप 2 चर से अधिक लूप करते हैं।

graph <- function(n,p){ 
    x <- dbinom(0:n,size=n,prob=p) 
    barplot(x,names.arg=0:n, 
     main=sprintf(paste('bin. dist. ',n,p,sep=':'))) 
} 
par(mfcol=c(2,5)) 
    mapply(graph,20,seq(0.1,1,0.1)) 

enter image description here

+1

'sapply (seq (0.1, 1, 0.1), ग्राफ, n = 20) ' –

2

साजिश आधार ग्राफिक्स बार आप अक्सर एक for पाश का उपयोग करना चाहते से एक है। इसका कारण यह है कि अधिकांश साजिश कार्य किसी ऑब्जेक्ट को अदृश्य रूप से वापस कर देते हैं, लेकिन आप इनमें रुचि नहीं रखते हैं; आप जो चाहते हैं वह साजिश का दुष्प्रभाव है। एक लूप लौटे हुए ऑब्जेक्ट को अनदेखा करता है, जबकि *apply परिवार एकत्रित करने और उन्हें वापस करने का प्रयास बर्बाद कर देगा।

par(mfrow=c(2, 5)) 
for(p in seq(0.1, 1, len=10)) 
{ 
    x <- dbinom(0:20, size=20, p=p) 
    barplot(x, names.arg=0:20, space=0) 
} 
+0

भी काम करेगा क्षमा करें, मुझे चिंता है कि यह संदिग्ध है ..." [बेस प्लॉटिंग फ़ंक्शंस] में से अधिकांश वस्तुएं अदृश्य रूप से वापस आती हैं " ? मुझे लगता है कि यह बहुत भ्रामक और आम तौर पर गलत है। बेस प्लॉटिंग फ़ंक्शंस का जिक्र करते समय यह सोचना भी गलत है कि फॉर-लूप "लौटे ऑब्जेक्ट को अनदेखा करते हैं"। –

+0

संदर्भ बेस ग्राफिक्स का उपयोग है, इसलिए मुझे लगता है कि ओपी को संकीर्ण मार्जिन निर्दिष्ट करने में मदद की ज़रूरत है। –

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