% Generated by roxygen2: do not edit by hand % Please edit documentation in R/annotation-logticks.r \name{annotation_logticks} \alias{annotation_logticks} \title{Annotation: log tick marks} \usage{ annotation_logticks( base = 10, sides = "bl", outside = FALSE, scaled = TRUE, short = unit(0.1, "cm"), mid = unit(0.2, "cm"), long = unit(0.3, "cm"), colour = "black", size = 0.5, linetype = 1, alpha = 1, color = NULL, ... ) } \arguments{ \item{base}{the base of the log (default 10)} \item{sides}{a string that controls which sides of the plot the log ticks appear on. It can be set to a string containing any of \code{"trbl"}, for top, right, bottom, and left.} \item{outside}{logical that controls whether to move the log ticks outside of the plot area. Default is off (\code{FALSE}). You will also need to use \code{coord_cartesian(clip = "off")}. See examples.} \item{scaled}{is the data already log-scaled? This should be \code{TRUE} (default) when the data is already transformed with \code{log10()} or when using \code{scale_y_log10()}. It should be \code{FALSE} when using \code{coord_trans(y = "log10")}.} \item{short}{a \code{\link[grid:unit]{grid::unit()}} object specifying the length of the short tick marks} \item{mid}{a \code{\link[grid:unit]{grid::unit()}} object specifying the length of the middle tick marks. In base 10, these are the "5" ticks.} \item{long}{a \code{\link[grid:unit]{grid::unit()}} object specifying the length of the long tick marks. In base 10, these are the "1" (or "10") ticks.} \item{colour}{Colour of the tick marks.} \item{size}{Thickness of tick marks, in mm.} \item{linetype}{Linetype of tick marks (\code{solid}, \code{dashed}, etc.)} \item{alpha}{The transparency of the tick marks.} \item{color}{An alias for \code{colour}.} \item{...}{Other parameters passed on to the layer} } \description{ This annotation adds log tick marks with diminishing spacing. These tick marks probably make sense only for base 10. } \examples{ # Make a log-log plot (without log ticks) a <- ggplot(msleep, aes(bodywt, brainwt)) + geom_point(na.rm = TRUE) + scale_x_log10( breaks = scales::trans_breaks("log10", function(x) 10^x), labels = scales::trans_format("log10", scales::math_format(10^.x)) ) + scale_y_log10( breaks = scales::trans_breaks("log10", function(x) 10^x), labels = scales::trans_format("log10", scales::math_format(10^.x)) ) + theme_bw() a + annotation_logticks() # Default: log ticks on bottom and left a + annotation_logticks(sides = "lr") # Log ticks for y, on left and right a + annotation_logticks(sides = "trbl") # All four sides a + annotation_logticks(sides = "lr", outside = TRUE) + coord_cartesian(clip = "off") # Ticks outside plot # Hide the minor grid lines because they don't align with the ticks a + annotation_logticks(sides = "trbl") + theme(panel.grid.minor = element_blank()) # Another way to get the same results as 'a' above: log-transform the data before # plotting it. Also hide the minor grid lines. b <- ggplot(msleep, aes(log10(bodywt), log10(brainwt))) + geom_point(na.rm = TRUE) + scale_x_continuous(name = "body", labels = scales::math_format(10^.x)) + scale_y_continuous(name = "brain", labels = scales::math_format(10^.x)) + theme_bw() + theme(panel.grid.minor = element_blank()) b + annotation_logticks() # Using a coordinate transform requires scaled = FALSE t <- ggplot(msleep, aes(bodywt, brainwt)) + geom_point() + coord_trans(x = "log10", y = "log10") + theme_bw() t + annotation_logticks(scaled = FALSE) # Change the length of the ticks a + annotation_logticks( short = unit(.5,"mm"), mid = unit(3,"mm"), long = unit(4,"mm") ) } \seealso{ \code{\link[=scale_y_continuous]{scale_y_continuous()}}, \code{\link[=scale_y_log10]{scale_y_log10()}} for log scale transformations. \code{\link[=coord_trans]{coord_trans()}} for log coordinate transformations. }