我对R.不太熟悉。我使用R来制作不同lambda(从1到10)的泊松分布图,并显示每个的图作为比较。
但是我想添加一个标题说:“lambda = 1”表示情节1,“lambda = 2”表示情节2 ...等图表自动根据lambda。但我无法弄清楚如何自动更新标题。这是我的代码,我能够正确输出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 :(得分:1)
您可以简化问题。使用一个循环,在lamda值上,使用毒物公式在每次迭代时计算y的值,然后绘制它。我使用main
参数为每个绘图添加标题。在这里,我使用bquote
来获取lambda值的plotmath格式。
例如,对于4个lambda值,您得到:
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')
})
答案 1 :(得分:0)
这可能会有所帮助:
for (i in 1:10){
plot(the_data_frame[[i]]~the_data_frame[[11]], the_data_frame,
main=paste("lambda=", i, sep=""))
}
答案 2 :(得分: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)
答案 3 :(得分:0)
您是否正在寻找一个交互式窗口,您可以在其中输入文本并更新图标题?如果是,您可能想要查找tcltk包。
请参阅 http://bioinf.wehi.edu.au/~wettenhall/RTclTkExamples/modalDialog.html