Browse Source

geom_col() moved over to ggplot2

pull/6/head
Bob Rudis 8 years ago
parent
commit
7880d5bf9d
  1. 1
      DESCRIPTION
  2. 2
      NAMESPACE
  3. 71
      R/geom_col.r
  4. 76
      man/geom_col.Rd
  5. 3
      man/ggalt-ggproto.Rd

1
DESCRIPTION

@ -51,7 +51,6 @@ Collate:
'geom_ash.r'
'geom_bkde.r'
'geom_bkde2d.r'
'geom_col.r'
'geom_encircle.r'
'geom_table.r'
'geom_xspline.r'

2
NAMESPACE

@ -9,7 +9,6 @@ export(CoordProj)
export(Gb)
export(GeomBkde)
export(GeomBkde2d)
export(GeomCol)
export(GeomEncircle)
export(GeomStateface)
export(GeomXSpline2)
@ -25,7 +24,6 @@ export(bytes)
export(coord_proj)
export(geom_bkde)
export(geom_bkde2d)
export(geom_col)
export(geom_encircle)
export(geom_stateface)
export(geom_xspline)

71
R/geom_col.r

@ -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)
}
)

76
man/geom_col.Rd

@ -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()
}

3
man/ggalt-ggproto.Rd

@ -1,11 +1,10 @@
% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/coord_proj.r, R/geom_ash.r, R/geom_bkde.r, R/geom_bkde2d.r, R/geom_col.r, R/geom_encircle.r, R/geom_xspline.r, R/geom_xspline2.r, R/stateface.r
% Please edit documentation in R/coord_proj.r, R/geom_ash.r, R/geom_bkde.r, R/geom_bkde2d.r, R/geom_encircle.r, R/geom_xspline.r, R/geom_xspline2.r, R/stateface.r
\docType{data}
\name{CoordProj}
\alias{CoordProj}
\alias{GeomBkde}
\alias{GeomBkde2d}
\alias{GeomCol}
\alias{GeomEncircle}
\alias{GeomStateface}
\alias{GeomXSpline2}

Loading…
Cancel
Save