R/SSplots_pauly.R

#'@export
SSplots_pauly<- function (data,lower.lt=10,upper.lt=50, tsplots=FALSE,MA=FALSE)
{

  if (MA==TRUE){
    data1<-data.frame(zoo::rollmean(data,k=3))
  }else{
    data1<-data.frame(data)
  }
  data1<-as.data.frame(data1)
  data2<-data1[,-1]
  Year<-data1[,1]
  lw<-0
  up<-0
  mat = matrix(ncol = ncol(data1), nrow = nrow(data1))
  colnames(mat)=colnames(data1)
  mat[,1]=data1[,1]
  outFname<-"Time Series Plot-"
  for (i in 1:ncol(data2))
  {
    lw[i]<-max(data1[,i+1])*(lower.lt/100)
    up[i]<-max(data1[,i+1])*(upper.lt/100)
    if (tsplots==TRUE)
    {
      ggplot2::ggplot(data1, ggplot2::aes(x = factor(Year), y = data2[ , i],group=1))+ggplot2::xlab("Year")+
        ggplot2::geom_area(color="darkblue",fill="lightblue",linetype=1,size=1)+
        ggplot2::geom_hline(ggplot2::aes(yintercept = lw[i], color=paste(lower.lt,"% of the maximum landings")),linetype=2,lwd=1)+
        ggplot2::geom_hline(ggplot2::aes(yintercept = up[i], color=paste(upper.lt,"% of the maximum landings")),linetype="twodash",lwd=1)+
        ggplot2::ggtitle("Time Series Plot")+ggplot2::ylab("Catch/Landings")+ggplot2::labs(color="")+ggplot2::theme(legend.position = "bottom")
      file_name=colnames(data2)[i]
      file_name=gsub("\\."," ",file_name)
      ggplot2::ggsave(filename=paste(outFname,file_name,".png",sep=" "),height=5,width=7)

    }

    for (j in 1:nrow(data2))
    {
      if(data1[j,1]< data1[which(grepl(max(data1[,i+1]),data1[,i+1])),1] & data2[j,i]<=lw[i])
        mat[j,i+1]<-1
      else{
        if(data1[j,1]<data1[which(grepl(max(data1[,i+1]),data1[,i+1])),1] & (data2[j,i]>=lw[i] & data2[j,i]<=up[i]))
          mat[j,i+1]<-2
        else{
          if(data2[j,i]>=up[i])
            mat[j,i+1]<-3
          else{
            if(data1[j,1]>data1[which(grepl(max(data1[,i+1]),data1[,i+1])),1] & (data2[j,i]>=lw[i] &data2[j,i]<=up[i]))
              mat[j,i+1]<-4
            else{
              if(data1[j,1]>data1[which(grepl(max(data1[,i+1]),data1[,i+1])),1] & data2[j,i]<=lw[i])
                mat[j,i+1]<-5
            }
          }
        }
      }
    }

  }
  mat1<-data.frame(mat[ ,-1 ])
  mat11<-data.frame(mat[ ,1])
  colnames(mat11)<-"Year"
  Underdeveloped<-rowSums(mat1==1)
  Developing<-rowSums(mat1==2)
  FullyExploited<-rowSums(mat1==3)
  Overfished<-rowSums(mat1==4)
  Collapsed<-rowSums(mat1==5)
  mat2<-data.frame(cbind(Underdeveloped,Developing,FullyExploited,Overfished,Collapsed))
  mat21<-(mat2/rowSums(mat2))*100
  mat4<-utils::stack(data.frame(mat21))
  Year1<-utils::stack(data.frame(rep(mat11,5)))
  Year<-as.numeric(Year1$values)
  Pecentage_Count<-data.frame(cbind(Year,mat4))
  colnames(Pecentage_Count)<-c("Year","Count","Status")
  Pecentage_Count[order(Pecentage_Count$Year, decreasing = F), ]

  Count=Pecentage_Count$Count
  Status=Pecentage_Count$Status
  plot_Number<-ggplot2::ggplot(Pecentage_Count, ggplot2::aes(x=factor(Year), y=Count, fill=Status,group=Status)) + ggplot2::geom_area() +ggplot2::scale_fill_brewer(palette="RdYlGn",direction=-1)+
    ggplot2::theme(legend.position = "bottom")+ggplot2::xlab("Year")+ggplot2::ylab("Number of Stocks by Status (%)")


  mat0<-data.frame(mat)
  nn<-colnames(mat0)
  rr<-ncol(mat0)
  tt3<-reshape2::melt(mat0,id.vars=nn[1],measure.vars=nn[c(2:rr)])
  nn<-names(data1)
  tt4<-reshape2::melt(data1,id.vars=nn[1],measure.vars=nn[c(2:rr)])
  tt5<-merge(tt3,tt4,by=c("Year","variable"))
  tt6<-tapply(tt5$value.y,c(list(tt5$Year),list(tt5$value.x)),FUN="sum")
  tt7<-data.frame("Year"=as.numeric(dimnames(tt6)[[1]]),"Underdeveloped"=rep(0,nrow(tt6)),"Developing"=rep(0,nrow(tt6)),"FullyExploited"=rep(0,nrow(tt6)),"Overfished"=rep(0,nrow(tt6)),"Collapsed"=rep(0,nrow(tt6)))
  for(i in 1:ncol(tt6))
  {
    tt7[,i+1]=tt6[,i]
  }
  tt7[is.na(tt7)]<-0
  mat2_c<-tt7[,-1]
  mat21_c<-(mat2_c/rowSums(mat2_c))*100
  mat4_c<-utils::stack(data.frame(mat21_c))
  Year1<-utils::stack(data.frame(rep(mat11,5)))
  Year<-as.numeric(Year1$values)
  Pecentage_Catch<-data.frame(cbind(Year,mat4_c))
  colnames(Pecentage_Catch)<-c("Year","Catch","Status")
  Pecentage_Catch[order(Pecentage_Catch$Year, decreasing = F), ]
  Catch=Pecentage_Catch$Catch
  plot_Catch<-ggplot2::ggplot(Pecentage_Catch, ggplot2::aes(x=factor(Year), y=Catch, fill=Status,group=Status)) + ggplot2::geom_area() +ggplot2::scale_fill_brewer(palette="RdYlGn",direction=-1)+
    ggplot2::theme(legend.position = "bottom")+ggplot2::xlab("Year")+ggplot2::ylab("Catch by Stock Status (%)")
  print(plot_Number)
  print(plot_Catch)
}

Try the SSplots package in your browser

Any scripts or data that you put into this service are public.

SSplots documentation built on Sept. 13, 2024, 1:11 a.m.