我有一个for循环,可以创建一组beta密度,在我的脚本中看起来像这样。
x = seq(0,1,0.01)
alpha <- c(1,3,5,5,1,1,2,5,5,2)
beta <- c(2,4,15,5,1,1,2,5,5,5)
color <- c("blue","green","pink","gray","brown","yellow","purple","skyblue","plum","tan")
plot(x,dbeta(x, alpha[1], beta[1]) / sum(x), type="l", col= color[1], xlab="x-axis", ylab="y-axis")
for(i in 2:10){
lines(x,dbeta(x, alpha[i], beta[i]), type="l", col= color[i], pch="i")
}
我现在想在图的底部创建一个图例,包含线的颜色和alpha / beta矢量的相应值。我怎么做到这一点?直到现在我的所有尝试都失败了......
答案 0 :(得分:0)
不是基础图形,但ggplot
是为此做的。
params = data.frame(alpha,beta)
gg <- do.call(rbind,lapply(1:nrow(params),function(i)
cbind(i,x,y=dbeta(x,params[i,]$alpha,params[i,]$beta))))
gg <- data.frame(gg)
library(ggplot2)
ggplot(gg,aes(x,y,color=factor(i))) +
geom_line(size=1)+
scale_color_manual("Alpha,Beta",
values=color,
labels=paste0("(",params$alpha,", ",params$beta,")"))+
theme(legend.position="bottom")
请注意,根据您对alpha和beta的定义,图4,8和9是相同的,图5和图6是相同的。