R/coord_scalebar.R

Defines functions coord_scalebar

#' Title
#'
#' @param xunit
#' @param yunit
#' @param xlength
#' @param ylength
#' @param xlabel
#' @param xfrac
#' @param ylabel
#' @param yfrac
#' @param xlim
#' @param ylim
#' @param expand
#' @param ...
#'
#' @return
#' @export
#'
#' @examples
coord_scalebar<-function(
  xunit="",
  yunit="",
  xlength=NULL,
  ylength=NULL,
  xlabel=xlength,  xfrac=10,
  ylabel=ylength,  yfrac=15,
  xlim=NULL, ylim=NULL, expand=T,
  ...
)
{
 require(lemon)




  brx<-function(r){
    if(is.null(xlength))
      xlength<-pretty(diff(range(r))/xfrac)[2]
    c(min(r), min(r) + xlength/2, min(r) + xlength )
  }

  bry<-function(r){
    if(is.null(ylength))
      ylength<-pretty(diff(range(r))/yfrac)[2]
    c(min(r), min(r) + ylength/2, min(r) + ylength )
  }





  lbx<-function(r){
    xlength<-diff(range(r))
    c("",paste0(xlength,xunit),"")
  }
  lby<-function(r){
    ylength<-diff(range(r))
    c("",paste0(ylength,yunit),"")
  }




  list(
    coord_capped_cart(bottom = "both", left="both", xlim=xlim, ylim=ylim, expand=expand) ,
    scale_x_continuous(breaks=brx,  labels=lbx),
    scale_y_continuous(breaks=bry,  labels=lby)
  )
}
tdanker/ephys2 documentation built on Aug. 11, 2019, 12:12 p.m.