2013-05-06 9 views
7

के रंग के रूप में एक छवि सेट करना मैंने इस कोड को statmethods [dot] net से उधार लिया। परिणाम एक सामान्य वितरण के तहत एक रंगीन क्षेत्र है।एक बहुभुज

mean=100; sd=15 
lb=80; ub=120 

x <- seq(-4,4,length=100)*sd + mean 
hx <- dnorm(x,mean,sd) 

plot(x, hx, type="n", xlab="IQ Values", ylab="Density", 
    main="Normal Distribution", axes=FALSE) 

i <- x >= lb & x <= ub 
lines(x, hx) 
polygon(c(lb,x[i],ub), c(0,hx[i],0), col="red") 

area <- pnorm(ub, mean, sd) - pnorm(lb, mean, sd) 
result <- paste("P(",lb,"< IQ <",ub,") =", 
    signif(area, digits=3)) 
mtext(result,2) 

enter image description here

मैं सोच रहा था अगर यह लाल बहुभुज के रंग के रूप में एक चित्र का चयन करने के लिए संभव है?

बहुत धन्यवाद!

उत्तर

10

अपने कोड के साथ काम करते हुए, मैं मूल रूप से png पैकेज (In R, how to plot with a png as background? से सलाह के आधार पर) का उपयोग करके एक छवि (मैंने नीचे एक यादृच्छिक छवि का उपयोग किया) का प्लॉट करने का सुझाव दिया है और उसके बाद अपनी लाइनों को प्लॉट करें।

mean=100; sd=15 
lb=80; ub=120 

x <- seq(-4,4,length=100)*sd + mean 
hx <- dnorm(x,mean,sd) 

# load package and an image 
library(png) 
ima <- readPNG("Red_Hot_Sun.PNG") 

# plot an empty plot with your labels, etc. 
plot(1,xlim=c(min(x),max(x)), type="n", xlab="IQ Values", ylab="Density", 
    main="Normal Distribution", axes=FALSE) 
# put in the image 
lim <- par() 
rasterImage(ima, lim$usr[1], lim$usr[3], lim$usr[2], lim$usr[4]) 

# add your plot 
par(new=TRUE) 
plot(x, hx, xlim=c(min(x),max(x)), type="l", xlab="", ylab="", axes=FALSE) 
i <- x >= lb & x <= ub 
lines(x, hx) 
# add a polygon to cover the background above plot 
polygon(c(x,180,180,20,20), c(hx,0,1,1,0), col="white") 
# add polygons to cover the areas under the plot you don't want visible 
polygon(c(-20,-20,x[x<=lb],lb), c(-10,min(hx),hx[x<=lb],-10), col="white") 
polygon(c(ub,x[x>=ub],200,200), c(-1,hx[x>=ub],min(hx),-1), col="white") 

# add your extra text 
area <- pnorm(ub, mean, sd) - pnorm(lb, mean, sd) 
result <- paste("P(",lb,"< IQ <",ub,") =", 
    signif(area, digits=3)) 
mtext(result,2) 

आप देता है:

An image

+0

बहुत बढ़िया! आपका बहुत बहुत धन्यवाद! –

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