5 changed files with 1 additions and 152 deletions
@ -1,71 +0,0 @@ |
|||
#' Bars, rectangles with bases on x-axis but with "identity" as the |
|||
#' default "stat" |
|||
#' |
|||
#' This is an alternative to \code{geom_bar} for making bar charts, |
|||
#' It uses \code{stat="identity"} which requires you to map a variable to |
|||
#' the \code{y} aesthetic. There is no option to use another "stat". |
|||
#' |
|||
#' @export |
|||
#' @section Aesthetics: |
|||
#' \code{geom_col} understands the following aesthetics (required aesthetics |
|||
#' are in bold): |
|||
#' \itemize{ |
|||
#' \item \strong{\code{x}} |
|||
#' \item \strong{\code{y}} |
|||
#' \item \code{alpha} |
|||
#' \item \code{color} |
|||
#' \item \code{fill} |
|||
#' \item \code{linetype} |
|||
#' \item \code{size} |
|||
#' } |
|||
#' |
|||
#' @inheritParams ggplot2::geom_bar |
|||
#' @param width Bar width. By default, set to 90\% of the resolution of the data. |
|||
#' @examples |
|||
#' df <- data.frame(trt = c("a", "b", "c"), outcome = c(2.3, 1.9, 3.2)) |
|||
#' ggplot(df, aes(trt, outcome)) + geom_col() |
|||
geom_col <- function(mapping = NULL, data = NULL, |
|||
position = "stack", |
|||
..., |
|||
width = NULL, |
|||
na.rm = FALSE, |
|||
show.legend = NA, |
|||
inherit.aes = TRUE) { |
|||
|
|||
layer( |
|||
data = data, |
|||
mapping = mapping, |
|||
stat = "identity", |
|||
geom = GeomCol, |
|||
position = position, |
|||
show.legend = show.legend, |
|||
inherit.aes = inherit.aes, |
|||
params = list( |
|||
width = width, |
|||
na.rm = na.rm, |
|||
... |
|||
) |
|||
) |
|||
} |
|||
|
|||
#' @rdname ggalt-ggproto |
|||
#' @format NULL |
|||
#' @usage NULL |
|||
#' @export |
|||
GeomCol <- ggproto("GeomCol", GeomRect, |
|||
required_aes = c("x", "y"), |
|||
|
|||
setup_data = function(data, params) { |
|||
data$width <- data$width %||% |
|||
params$width %||% (resolution(data$x, FALSE) * 0.9) |
|||
transform(data, |
|||
ymin = pmin(y, 0), ymax = pmax(y, 0), |
|||
xmin = x - width / 2, xmax = x + width / 2, width = NULL |
|||
) |
|||
}, |
|||
|
|||
draw_panel = function(self, data, panel_scales, coord, width = NULL) { |
|||
# Hack to ensure that width is detected as a parameter |
|||
ggproto_parent(GeomRect, self)$draw_panel(data, panel_scales, coord) |
|||
} |
|||
) |
@ -1,76 +0,0 @@ |
|||
% Generated by roxygen2: do not edit by hand |
|||
% Please edit documentation in R/geom_col.r |
|||
\name{geom_col} |
|||
\alias{geom_col} |
|||
\title{Bars, rectangles with bases on x-axis but with "identity" as the |
|||
default "stat"} |
|||
\usage{ |
|||
geom_col(mapping = NULL, data = NULL, position = "stack", ..., |
|||
width = NULL, na.rm = FALSE, show.legend = NA, inherit.aes = TRUE) |
|||
} |
|||
\arguments{ |
|||
\item{mapping}{Set of aesthetic mappings created by \code{\link{aes}} or |
|||
\code{\link{aes_}}. If specified and \code{inherit.aes = TRUE} (the |
|||
default), it is combined with the default mapping at the top level of the |
|||
plot. You must supply \code{mapping} if there is no plot mapping.} |
|||
|
|||
\item{data}{The data to be displayed in this layer. There are three |
|||
options: |
|||
|
|||
If \code{NULL}, the default, the data is inherited from the plot |
|||
data as specified in the call to \code{\link{ggplot}}. |
|||
|
|||
A \code{data.frame}, or other object, will override the plot |
|||
data. All objects will be fortified to produce a data frame. See |
|||
\code{\link{fortify}} for which variables will be created. |
|||
|
|||
A \code{function} will be called with a single argument, |
|||
the plot data. The return value must be a \code{data.frame.}, and |
|||
will be used as the layer data.} |
|||
|
|||
\item{position}{Position adjustment, either as a string, or the result of |
|||
a call to a position adjustment function.} |
|||
|
|||
\item{...}{other arguments passed on to \code{\link{layer}}. These are |
|||
often aesthetics, used to set an aesthetic to a fixed value, like |
|||
\code{color = "red"} or \code{size = 3}. They may also be parameters |
|||
to the paired geom/stat.} |
|||
|
|||
\item{width}{Bar width. By default, set to 90\% of the resolution of the data.} |
|||
|
|||
\item{na.rm}{If \code{FALSE} (the default), removes missing values with |
|||
a warning. If \code{TRUE} silently removes missing values.} |
|||
|
|||
\item{show.legend}{logical. Should this layer be included in the legends? |
|||
\code{NA}, the default, includes if any aesthetics are mapped. |
|||
\code{FALSE} never includes, and \code{TRUE} always includes.} |
|||
|
|||
\item{inherit.aes}{If \code{FALSE}, overrides the default aesthetics, |
|||
rather than combining with them. This is most useful for helper functions |
|||
that define both data and aesthetics and shouldn't inherit behaviour from |
|||
the default plot specification, e.g. \code{\link{borders}}.} |
|||
} |
|||
\description{ |
|||
This is an alternative to \code{geom_bar} for making bar charts, |
|||
It uses \code{stat="identity"} which requires you to map a variable to |
|||
the \code{y} aesthetic. There is no option to use another "stat". |
|||
} |
|||
\section{Aesthetics}{ |
|||
|
|||
\code{geom_col} understands the following aesthetics (required aesthetics |
|||
are in bold): |
|||
\itemize{ |
|||
\item \strong{\code{x}} |
|||
\item \strong{\code{y}} |
|||
\item \code{alpha} |
|||
\item \code{color} |
|||
\item \code{fill} |
|||
\item \code{linetype} |
|||
\item \code{size} |
|||
} |
|||
} |
|||
\examples{ |
|||
df <- data.frame(trt = c("a", "b", "c"), outcome = c(2.3, 1.9, 3.2)) |
|||
ggplot(df, aes(trt, outcome)) + geom_col() |
|||
} |
|||
|
Loading…
Reference in new issue