2013-03-14 5 views
0

Я не очень хорошо знаком с R. Я использовал R, чтобы составить график распределения пуассонов для разных лямбда (от 1 до 10) и отобразить график для каждого, как сравнение.Автоматически обновлять заголовок графа с помощью параметра

Но я бы хотел добавить название: «lambda = 1» для участка 1, «lambda = 2» для графика 2 ... и т. Д. На графике автоматически в соответствии с лямбдой. Но я не мог понять, как обновить заголовок автоматически. Это мой код, я смог правильно вывести 10 разных графов, но не знаю, как автоматически обновить или добавить соответствующую лямбду в заголовок. Может ли кто-нибудь дать мне какой-то намек.

Также можно указать размер шрифта «маленький» для участка с 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

+0

Извините, я должен быть более ясным, я имею в виду заголовок на графике. Скажем, для сюжета с 1 по 5, я хочу, чтобы название было размером шрифта 12, а для участка 6 - 10, я хочу, чтобы название имело размер шрифта 8. На самом деле мне не нужно иметь точный размер шрифта. Я просто хочу знать, есть ли способ настроить размер шрифта заголовка автоматически так же, как автоматически выводить лямбда на заголовок. Извините, что я не дал понять, изначально. –

+0

@john_w Вы можете установить общий размер шрифта графа в точках с выражением 'par (ps = 12)'; вы можете изменить множитель размера шрифта заголовка графа с 'cex.main =' в инструкции 'plot'. – ds440

ответ

1

Вы можете упростить проблему. Используя один цикл, над значениями lamda, вы вычисляете на каждой итерации значение y, используя формулу яда, затем вы закладываете его. Я использую аргумент main, чтобы добавить заголовок для каждого сюжета. Здесь я использую bquote, чтобы получить формат 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' not' lambd * x' – ds440

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) 
Смежные вопросы