使用参数自动更新图表标题

时间:2013-03-14 19:18:04

标签: r

我对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)
}

4 个答案:

答案 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')

})

enter image description here

答案 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