diff --git a/DC_theme_generator.R b/DC_theme_generator.R new file mode 100644 index 0000000000000000000000000000000000000000..0bcfa73f4d2cda26d3beb52b1b81376ecc35e7aa --- /dev/null +++ b/DC_theme_generator.R @@ -0,0 +1,129 @@ +DC_theme_generator <- function(type,legend=T,ticks="out",x.axis.angle=0,hjust=0.5,vjust=0.5,fontsize.cex=1.5,fontfamily="serif"){ + + ## Options: + # type: 'L', 'square' + # ticks: 'in', 'out' + # fontfamily: 'serif' , 'sans' , 'mono' + + ticks <- tolower(ticks) + fontfamily <- tolower(fontfamily) + + if( type == "square"){ + if( legend ){ + # Type: square , with legend" + themeToReturn <- ggplot2::theme( + panel.border = element_rect(linetype = 1, + colour = "black", + fill=NA, + size=1), + panel.background=element_blank(), + panel.grid.major=element_line(color=NA), + axis.ticks = element_line(colour = "black"), + text = element_text(family = fontfamily), + axis.ticks.length = unit(ifelse(ticks=="in",-0.2,0.2),"cm"), + axis.title = element_text(size=rel(fontsize.cex)), + axis.text.y = element_text(size = rel(fontsize.cex), + hjust = 0.5, + angle = 0, + color="black", + margin=unit(c(0.3,0.3,0.3,0.3), "cm")), + axis.text.x = element_text(angle = x.axis.angle, + hjust = hjust, + vjust = vjust, + size = rel(fontsize.cex), + color="black", + margin=unit(c(0.3,0.3,0.3,0.3), "cm")), + legend.key= element_rect(fill=NA, + colour = NA) + ) + }else{ + # Type: square , without legend" + themeToReturn <- ggplot2::theme( + panel.border = element_rect(linetype = 1, + colour = "black", + fill=NA, + size=1), + panel.background=element_blank(), + panel.grid.major=element_line(color=NA), + axis.ticks = element_line(colour = "black"), + text = element_text(family = fontfamily), + axis.ticks.length = unit(ifelse(ticks=="in",-0.2,0.2),"cm"), + axis.title = element_text(size=rel(fontsize.cex)), + axis.text.y = element_text(size = rel(fontsize.cex), + hjust = 0.5, + angle = 0, + color="black", + margin=unit(c(0.3,0.3,0.3,0.3), "cm")), + axis.text.x = element_text(angle = x.axis.angle, + hjust = hjust, + vjust = vjust, + size = rel(fontsize.cex), + color="black", + margin=unit(c(0.3,0.3,0.3,0.3), "cm")), + legend.key= element_rect(fill=NA, + colour = NA), + legend.position="none" + ) + } + } + + if( type == 'L' ){ + if( legend ){ + # Type: L , with legend" + themeToReturn <- ggplot2::theme( + axis.line = element_line(colour = "black", + size=0.5), + panel.border = element_blank(), + panel.background = element_blank(), + panel.grid.major = element_blank(), + panel.grid.minor = element_blank(), + axis.ticks = element_line(colour = "black"), + text = element_text(family = fontfamily), + axis.ticks.length = unit(ifelse(ticks=="in",-0.2,0.2), "cm"), + axis.title = element_text(size=rel(fontsize.cex)), + axis.text.y = element_text(size = rel(fontsize.cex), + hjust = 0.5, + angle = 0, + color="black", + margin=unit(c(0.3,0.3,0.3,0.3), "cm")), + axis.text.x = element_text(angle = x.axis.angle, + hjust = hjust, + vjust = vjust, + size = rel(fontsize.cex), + color="black", + margin=unit(c(0.3,0.3,0.3,0.3), "cm")), + legend.key = element_rect(fill=NA, + colour = NA) + ) + } else { + # Type: L , without legend + themeToReturn <- ggplot2::theme( + axis.line = element_line(colour = "black", + size=0.5), + panel.border = element_blank(), + panel.background = element_blank(), + panel.grid.major = element_blank(), + panel.grid.minor = element_blank(), + axis.ticks = element_line(colour = "black"), + text = element_text(family = fontfamily), + axis.ticks.length = unit(ifelse(ticks=="in",-0.2,0.2), "cm"), + axis.title = element_text(size=rel(fontsize.cex)), + axis.text.y = element_text(size = rel(fontsize.cex), + hjust=0.5, + angle=0, + color="black", + margin=unit(c(0.3,0.3,0.3,0.3), "cm")), + axis.text.x = element_text(angle = x.axis.angle, + hjust = hjust, + vjust = vjust, + size = rel(fontsize.cex), + color="black", + margin=unit(c(0.3,0.3,0.3,0.3), "cm")), + legend.key = element_rect(fill=NA, + colour = NA), + legend.position="none" + ) + } + } + return(themeToReturn) +} \ No newline at end of file