% Generated by roxygen2: do not edit by hand % Please edit documentation in R/scale-shape.r \name{scale_shape} \alias{scale_shape} \alias{scale_shape_binned} \alias{scale_shape_discrete} \alias{scale_shape_ordinal} \alias{scale_shape_continuous} \title{Scales for shapes, aka glyphs} \usage{ scale_shape(..., solid = TRUE) scale_shape_binned(..., solid = TRUE) } \arguments{ \item{...}{ Arguments passed on to \code{\link[=discrete_scale]{discrete_scale}} \describe{ \item{\code{palette}}{A palette function that when called with a single integer argument (the number of levels in the scale) returns the values that they should take (e.g., \code{\link[scales:hue_pal]{scales::hue_pal()}}).} \item{\code{breaks}}{One of: \itemize{ \item \code{NULL} for no breaks \item \code{waiver()} for the default breaks (the scale limits) \item A character vector of breaks \item A function that takes the limits as input and returns breaks as output. Also accepts rlang \link[rlang:as_function]{lambda} function notation. }} \item{\code{limits}}{One of: \itemize{ \item \code{NULL} to use the default scale values \item A character vector that defines possible values of the scale and their order \item A function that accepts the existing (automatic) values and returns new ones. Also accepts rlang \link[rlang:as_function]{lambda} function notation. }} \item{\code{drop}}{Should unused factor levels be omitted from the scale? The default, \code{TRUE}, uses the levels that appear in the data; \code{FALSE} uses all the levels in the factor.} \item{\code{na.translate}}{Unlike continuous scales, discrete scales can easily show missing values, and do so by default. If you want to remove missing values from a discrete scale, specify \code{na.translate = FALSE}.} \item{\code{na.value}}{If \code{na.translate = TRUE}, what aesthetic value should the missing values be displayed as? Does not apply to position scales where \code{NA} is always placed at the far right.} \item{\code{aesthetics}}{The names of the aesthetics that this scale works with.} \item{\code{scale_name}}{The name of the scale that should be used for error messages associated with this scale.} \item{\code{name}}{The name of the scale. Used as the axis or legend title. If \code{waiver()}, the default, the name of the scale is taken from the first mapping used for that aesthetic. If \code{NULL}, the legend title will be omitted.} \item{\code{labels}}{One of: \itemize{ \item \code{NULL} for no labels \item \code{waiver()} for the default labels computed by the transformation object \item A character vector giving labels (must be same length as \code{breaks}) \item A function that takes the breaks as input and returns labels as output. Also accepts rlang \link[rlang:as_function]{lambda} function notation. }} \item{\code{guide}}{A function used to create a guide or its name. See \code{\link[=guides]{guides()}} for more information.} \item{\code{super}}{The super class to use for the constructed scale} }} \item{solid}{Should the shapes be solid, \code{TRUE}, or hollow, \code{FALSE}?} } \description{ \code{scale_shape()} maps discrete variables to six easily discernible shapes. If you have more than six levels, you will get a warning message, and the seventh and subsequent levels will not appear on the plot. Use \code{\link[=scale_shape_manual]{scale_shape_manual()}} to supply your own values. You can not map a continuous variable to shape unless \code{scale_shape_binned()} is used. Still, as shape has no inherent order, this use is not advised. } \examples{ dsmall <- diamonds[sample(nrow(diamonds), 100), ] (d <- ggplot(dsmall, aes(carat, price)) + geom_point(aes(shape = cut))) d + scale_shape(solid = TRUE) # the default d + scale_shape(solid = FALSE) d + scale_shape(name = "Cut of diamond") # To change order of levels, change order of # underlying factor levels(dsmall$cut) <- c("Fair", "Good", "Very Good", "Premium", "Ideal") # Need to recreate plot to pick up new data ggplot(dsmall, aes(price, carat)) + geom_point(aes(shape = cut)) # Show a list of available shapes df_shapes <- data.frame(shape = 0:24) ggplot(df_shapes, aes(0, 0, shape = shape)) + geom_point(aes(shape = shape), size = 5, fill = 'red') + scale_shape_identity() + facet_wrap(~shape) + theme_void() }