2011-09-02 13 views
13

यह सवाल दो अलग अलग सवाल से संबंधित है कि मैंने पहले कहा है: boringmatrixप्लॉट भारित आवृत्ति मैट्रिक्स

:

1) Reproduce frequency matrix plot

2) Add 95% confidence limits to cumulative plot

मैं आर में इस भूखंड पुन: पेश करना चाहते हैं

ग्राफ़िक के नीचे कोड का उपयोग करके मुझे यह मिल गया है: multiplot

#Set the number of bets and number of trials and % lines 
numbet <- 36 
numtri <- 1000 
#Fill a matrix where the rows are the cumulative bets and the columns are the trials 
xcum <- matrix(NA, nrow=numbet, ncol=numtri) 
for (i in 1:numtri) { 
x <- sample(c(0,1), numbet, prob=c(5/6,1/6), replace = TRUE) 
xcum[,i] <- cumsum(x)/(1:numbet) 
} 
#Plot the trials as transparent lines so you can see the build up 
matplot(xcum, type="l", xlab="Number of Trials", ylab="Relative Frequency", main="", col=rgb(0.01, 0.01, 0.01, 0.02), las=1) 

मेरा प्रश्न है: एकाधिक नमूनों को साजिश किए बिना, मैं एक पास में शीर्ष साजिश को पुन: पेश कैसे कर सकता हूं?

धन्यवाद।

+0

तथ्य यह है कि आपके दिमाग में कोई अधिक पथ नियतात्मक ग्राफिक था के बावजूद, मैंने सोचा था कि अपने पारदर्शिता भारित ग्राफ इस सवाल के सांख्यिकीय प्रकृति को दर्शाता हुआ पर बेहतर था। मुझे लगता है कि इसे रेखांकित किया जा सकता था: 'रेखाएं (6:36, 6/(6:36), lty = 3)' चरम संभावनाओं को दिखाने के लिए।) –

+0

@DWin बहुत आसानी से मैं अब अपने सिर को बनाने की कोशिश कर रहा हूँ कुछ प्रकार की घनत्व heatmap (या हेक्सबिन) तो यह पारदर्शी भारित संस्करण की तरह है। अगर आपको यह पता चल गया है कि इसे कैसे बनाया जाए, तो मैं एक नया सवाल पूछ सकता हूं? मैं कुछ [इस] की तरह सोच रहा था (http://www.actualanalytics.com/density-plot-heatmap-using-r-a58)। –

+0

वह लिंक इस समय मेरे लिए काम नहीं कर रहा है, लेकिन मैंने आपके प्रश्नों से बहुत कुछ सीखा है इसलिए मैं आपको और पूछने के लिए प्रोत्साहित करता हूं। –

उत्तर

6

आप इस साजिश का उत्पादन कर सकते हैं ...

enter image description here

... इस कोड का उपयोग करके:

boring <- function(x, occ) occ/x 

boring_seq <- function(occ, length.out){ 
    x <- seq(occ, length.out=length.out) 
    data.frame(x = x, y = boring(x, occ)) 
} 

numbet <- 31 
odds <- 6 
plot(1, 0, type="n", 
    xlim=c(1, numbet + odds), ylim=c(0, 1), 
    yaxp=c(0,1,2), 
    main="Frequency matrix", 
    xlab="Successive occasions", 
    ylab="Relative frequency" 
    ) 

axis(2, at=c(0, 0.5, 1))  

for(i in 1:odds){ 
    xy <- boring_seq(i, numbet+1) 
    lines(xy$x, xy$y, type="o", cex=0.5) 
} 

for(i in 1:numbet){ 
    xy <- boring_seq(i, odds+1) 
    lines(xy$x, 1-xy$y, type="o", cex=0.5) 
} 
+1

वह वास्तव में मदद करता है। मैं अब कुछ दिनों के लिए एक ईंट की दीवार के खिलाफ अपने सिर पर टक्कर लगी है, और एक समय सीमा के साथ। अब मैं कुछ चीजों के साथ मिल सकता है। :) –

3

तुम भी Koshke की विधि का उपयोग कर सकते हैं, करने के लिए मूल्यों के संयोजन को सीमित करके एस < 6 और एंड्री के अनुरोध पर उन लोगों ने "पॉइंट" कॉन्फ़िगरेशन प्राप्त करने के लिए Ps $ n और ps $ s के अंतर पर शर्त जोड़ा।

ps <- ldply(0:35, function(i)data.frame(s=0:i, n=i)) 
plot.new() 
plot.window(c(0,36), c(0,1)) 
apply(ps[ps$s<6 & ps$n - ps$s < 30, ], 1, function(x){ 
    s<-x[1]; n<-x[2]; 
    lines(c(n, n+1, n, n+1), c(s/n, s/(n+1), s/n, (s+1)/(n+1)), type="o")}) 
axis(1) 
axis(2) 
lines(6:36, 6/(6:36), type="o") 
# need to fill in the unconnected points on the upper frontier 

Resulting plot (version 2)

+0

बहुत दिलचस्प है। धन्यवाद। –

+0

इसके अलावा, मूल प्रश्न के रूप में परीक्षणों की संख्या 31 तक सीमित नहीं है। (दाईं ओर किनारे पर ग्राफ के आकार की तुलना करें।) – Andrie

+0

ओह। ठीक है। इसे पूरा करने के लिए तार्किक स्थिति जोड़ देंगे। –

0

भारित आवृत्ति मैट्रिक्स भी स्थिति भार मैट्रिक्स (जैव सूचना विज्ञान में) कहा जाता है। इसे sequence logo के रूप में प्रदर्शित किया जा सकता है। कम से कम मैं भारित आवृत्ति मैट्रिक्स कैसे प्लॉट करता हूं।

library(cosmo) 
data(motifPWM); attributes(motifPWM) # Loads a sample position weight matrix (PWM) containing 8 positions. 
plot(motifPWM) # Plots the PWM as sequence logo. 
संबंधित मुद्दे