2013-03-14 58 views
0

自動更新圖形標題我對R不是很熟悉。我使用R爲不同的lambda(從1到10)創建泊松分佈圖,並將每個圖形顯示爲一個比較結果。使用參數

但是我想根據lambda自動添加一個標題說:plot 1的「lambda = 1」,plot 2的「lambda = 2」...等等。但我無法弄清楚如何自動更新標題。這是我的代碼,我能夠正確輸出10個不同的圖形,但不知道如何自動更新或添加相應的lambda到標題。有人可以給我一些提示。

也可以說有一個字體大小爲「小」的情節1至5,然後字體大小爲6至10?

感謝

the_data_frame<-data.frame(matrix(ncol=10,nrow=21)) 
lam<-seq(1,10,1) 
lam 
x<-seq(0,20,1) 
x 
for (i in 1:10){ 
the_data_frame[i]<-exp(-lam[i])*lam[i]**x/gamma(x+1) 
} 
the_data_frame<-cbind(the_data_frame, x) 


par(mfrow=c(5,2)) 
for (i in 1:10){ 
plot(the_data_frame[[i]]~the_data_frame[[11]], the_data_frame) 
} 
+0

你指的是什麼字體大小?標題?軸標籤?軸刻度? – LostLin 2013-03-14 19:23:43

+0

對不起,我應該更清楚,我的意思是圖上的標題。對於情節1至5,我希望標題的字體大小爲12,而對於情節6至10,我希望標題的字體大小爲8字節。實際上我不需要確切的字體大小。我只想知道是否有辦法自動調整標題的字體大小,就像自動輸出標題上的lambda一樣。對不起,我原本沒有說清楚。 – 2013-03-15 02:58:24

+0

@john_w您可以使用'par(ps = 12)'等語句設置一般圖形的字體大小。你可以在'plot'語句中用'cex.main ='改變圖形標題的字體大小乘數。 – ds440 2013-03-16 21:12:10

回答

1

可以簡化問題。使用一個循環,在lamda值上,在每次迭代中計算y的值,然後使用毒藥公式對其進行繪製。我使用main參數爲每個繪圖添加標題。在這裏,我使用bquote來獲取lambda值的plotmath格式。

例如,對於拉姆達的4個值,你會得到:

x<-seq(0,20,1);lam = c(0.5,1,2,4) 
par(mfrow=c(2,2)) 
lapply(lam,function(lamd){ 
    y <- exp(-lamd)*lamd*x/gamma(x+1) 
    plot(x,y,main=bquote(paste(lambda,'=',.(lamd))),type='l') 

}) 

enter image description here

+0

不錯,雖然有一個錯字 - 'lambd^x'不是'lambd * x' – ds440 2013-03-16 20:38:15

0

這可能幫助:

for (i in 1:10){ 
    plot(the_data_frame[[i]]~the_data_frame[[11]], the_data_frame, 
     main=paste("lambda=", i, sep="")) 
} 
0
library(ggplot2) 
xval <- rep(0:20,10) 
lambda <- rep(1:10,21) 
yvtal <- exp(- lambda)*lambda**xval/gamma(xval+1) 
the_new_data_frame <- data.frame(cbind(xval,lambda,yval)) 

plot1 <- ggplot(the_new_data_frame, aes(xval, yval)) + geom_line(aes(colour=factor(lambda))) 
plot1 
plot1 + facet_grid(~lambda)