#' plotCDF Function to create CDFs of chla, ts, and cyano
#'
#'
#' This functions produces CDF plots from the hkm2014Data. The implementation may be used more
#' widely though to create cumulative distribution functions for multiple categories
#'
#' @param catVar the categorical Variable such as-'bvCat', 'TS_CHLA_2', 'TS_CHLA_3', 'TS_CHLA_4'.
#' Of same length as contVar
#' @param contVar the continuous Variable such as-'sumBioV','CHLA', 'NTL', 'PTL', etc. Of same
#' length as contVar
#' @param cdf_colors colors for CDF plots and median line -should equal # of categories in catVar + 1
#' @param ... pass additional parameters to labs (e.g. set titles, axis labels, etc.)
#'
#' @examples
#' devtools::install_github('wesanderson','karthik')
#' library(wesanderson)
#' data(LakeTrophicModelling)
#' plotCdf(ltmData$bvCat,ltmData$CHLA,cdf_colors=wes.palette(3,'Royal1'),y='Percent',
#' x=expression(paste('Log10(Chl ', italic("a"),')')),title='CDF for category bvCat',
#' color="Biovolume\nCategories")
#' plotCdf(ltmData$TS_CHLA_3,ltmData$sumBioV+1,cdf_colors=wes.palette(3,'FantasticFox'),
#' y='Percent',x='Log10(Cyanobacterial Biovolume)',
#' title=expression(paste('CDF for Chlorophyll ', italic("a"),' Trophic States (3 Categories)')),
#' color="Trophic State\nCategories")
#'
#' @export
#' @import ggplot2
plotCdf <- function(catVar, contVar, cdf_colors = 1:length(catVar), ...) {
options(scipen = 5) #tell r not to use scientific notation on axis labels
keep<-complete.cases(catVar,contVar)
cdf_df<-data.frame(catVar,contVar)[keep,]
x <- ggplot(cdf_df,aes(contVar,colour=catVar)) +
stat_ecdf(size=2)+scale_color_manual(values=cdf_colors)+
scale_x_log10()+
theme(text = element_text(family="Times"),
panel.background = element_blank(), panel.grid = element_blank(),
panel.border = element_rect(fill = NA),
plot.title = element_text(family="sans",size=12,face="bold",vjust=1.1),
legend.position = c(0.15,0.75), legend.key = element_rect(fill = 'white'),
legend.text = element_text(family="sans",size=15), legend.title = element_text(family="sans",size=11),
axis.title.x = element_text(family="sans",vjust = -0.5, size = 12),
axis.title.y = element_text(family="sans",vjust = 1.5, size = 12),
axis.text.x = element_text(family="sans",size = 11),
axis.text.y = element_text(family="sans",size = 11)) +
geom_hline(linetype = 3, size = 1, colour = "gray",
yintercept = c(0,0.5,1)) +
labs(...)
return(x)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.