Хорошо, поэтому я использовал функцию par для объединения нескольких графиков.
Я добавил легенды, и это все весело и игры, пока одни сюжеты не нуждаются в легендах, отличных от других, и я не могу понять, какую программистскую гимнастику нужно заставить ее работать.
Я включил часть, где у меня есть свои легенды, под названием «Это часть, где мне нужна помощь», как вы видите, их четыре, для N1, N2, K1 и K2, с аблайном и текстовые функции для каждого.
Я пытался составить списки конкатенаций и тому подобное, но это не сработало так же хорошо, как с моими альфами, и я потратил слишком много времени на изучение того, как заставить его работать.
##II - Species Competition : testing different parameter combinations with a loop
#Clearing workspace
rm(list=ls())
graphics.off()
#Parameters set on types (lambda 1, lambda 2, alphas...)
years <- 50
Lambda1set<-c(5,5,3,3.2)
Lambda2set<-c(4,4,5,2.5)
Alphaset<-list(matrix(c(0.01, 0.007, 0.0045, 0.01),ncol = 2, byrow = TRUE),
matrix(c(0.01, 0.004, 0.009, 0.01),ncol = 2, byrow = TRUE),
matrix(c(0.01, 0.0065, 0.003, 0.01),ncol = 2, byrow = TRUE),
matrix(c(0.005, 0.005, 0.0045, 0.003),ncol = 2, byrow = TRUE))
#Creating vectors
TimeVec<-seq(1,years+1)
N1<-matrix(0,4,years+1)
N2<-matrix(0,4,years+1)
#INITIALIZATION
N0 <- 40
##N1[1] <-N0
##N2[1] <-N0
for(i in 1:4){
N1[i,1] <-N0
N2[i,1] <-N0
}
for (t in 1:years){
for(i in 1:4){
alphs <- Alphaset[[i]]
N1[i,t+1]<-(Lambda1set[i]*N1[i,t])/(1+alphs[1,1]*N1[i,t]+alphs[1,2]*N2[i,t])
N2[i,t+1]<-(Lambda2set[i]*N2[i,t])/(1+alphs[2,1]*N1[i,t]+alphs[2,2]*N2[i,t])
}
}
## Plotting
titles<-c("Both species coexist","Species 1 wins","Species 2 wins",
"Whoever comes first")
par(mfrow=c(2,2))
for(i in 1:4){
plot(TimeVec,N1[i,],type="l",main = titles[i], xlab='Time (years)',
ylab='Population Density',col='blue',lwd = 2,ylim = c(-100,500))
lines(TimeVec,N2[i,],type="l",col='green', lwd = 2)
legend("topright", legend = c("Species 1", "Species 2"),lty = 1,
col = c("blue", "green"),lwd = 2, bty = "n")
#Adding equilibria
R1<-(Lambda1set-1)
R2<-(Lambda2set-1)
alphs <- Alphaset[[i]]
### This is the part where I need help
N1eq <- (R1[i]*alphs[2,2]-R2[i]*alphs[1,2])/
(alphs[1,1]*alphs[2,2]-alphs[2,1]*alphs[1,2])
abline(h = N1eq, lty = 3)
text(0, N1eq, "n1*", adj = c(0, 0))
N2eq <- (R2[i]*alphs[1,1]-R1[i]*alphs[2,1])/
(alphs[1,1]*alphs[2,2]-alphs[2,1]*alphs[1,2])
abline(h = N2eq, lty = 3)
text(0, N2eq, "n2*", adj = c(0, 0))
K1 <- R1[i]/alphs[1,1]
K2 <- R2[i]/alphs[2,2]
abline(h = K1, lty = 3)
text(0, K1, "K1", adj = c(0, 0))
abline(h = K2, lty = 3)
text(0, K2, "K2", adj = c(0, 0))
#Invasion scores
Inv1<-((R1[i])/(R2[i]))*(alphs[2,2]/alphs[1,2])
Inv2<-((R2[i])/(R1[i]))*(alphs[1,1]/alphs[2,1])
print(c(Inv1,Inv2))
#abline(h = 1/alphs[1, 1], lty = 3)
#text(0, 1/alphs[1, 1], "K", adj = c(0, 0))
}
То, что я хотел бы получить, это N1 и N2 на первом графике, K1 на втором и четвертом и K2 на третьем. Спасибо всем за помощь!
Sam