Browse Source

geom_col

pull/6/head
Bob Rudis 8 years ago
parent
commit
d580dcc01d
  1. 31
      DESCRIPTION
  2. 2
      NAMESPACE
  3. 71
      R/geom_col.r
  4. BIN
      man/figures/coord_proj_01.png
  5. BIN
      man/figures/coordproj01.pdf
  6. BIN
      man/figures/geom_bkde2d_01.png
  7. BIN
      man/figures/geom_bkde_01.png
  8. BIN
      man/figures/geom_xspline_01.png
  9. BIN
      man/figures/geombkde01.pdf
  10. BIN
      man/figures/geombkde2d01.pdf
  11. BIN
      man/figures/geomxspline01.pdf
  12. BIN
      man/figures/stat_ash_01.png
  13. BIN
      man/figures/statash01.pdf
  14. 76
      man/geom_col.Rd
  15. 3
      man/ggalt-ggproto.Rd

31
DESCRIPTION

@ -1,6 +1,6 @@
Package: ggalt
Title: Extra Coordinate Systems, 'Geoms', Statistical Transformations, Scales and
Fonts for 'ggplot2'
Title: Extra Coordinate Systems, 'Geoms', Statistical Transformations, Scales
and Fonts for 'ggplot2'
Version: 0.2.0.9000
Maintainer: Bob Rudis <bob@rudis.net>
Authors@R: c(
@ -10,10 +10,10 @@ Authors@R: c(
person("Ingemar", role="dtc", comment="Pokémon javascript color palette"),
person("ProPublica", role="dtc", comment="StateFace font")
)
Description: A compendium of 'geoms', 'coords', 'stats', scales and fonts for 'ggplot2',
including splines, 1d and 2d densities, univariate average shifted histograms,
a new map coordinate system based on the 'PROJ.4'-library and the 'StateFace'
open source font 'ProPublica'.
Description: A compendium of 'geoms', 'coords', 'stats', scales and fonts for
'ggplot2', including splines, 1d and 2d densities, univariate average shifted
histograms, a new map coordinate system based on the 'PROJ.4'-library and the
'StateFace' open source font 'ProPublica'.
License: AGPL + file LICENSE
LazyData: true
URL: https://github.com/hrbrmstr/ggalt
@ -44,3 +44,22 @@ Imports:
extrafont
RoxygenNote: 5.0.1
VignetteBuilder: knitr
Collate:
'a-pokemon-colors.r'
'coord_proj.r'
'formatters.r'
'geom_ash.r'
'geom_bkde.r'
'geom_bkde2d.r'
'geom_col.r'
'geom_encircle.r'
'geom_table.r'
'geom_xspline.r'
'geom_xspline2.r'
'ggalt-package.r'
'grob_absolute.r'
'guide_axis.r'
'pokemon.r'
'stateface.r'
'utils.r'
'zzz.r'

2
NAMESPACE

@ -9,6 +9,7 @@ export(CoordProj)
export(Gb)
export(GeomBkde)
export(GeomBkde2d)
export(GeomCol)
export(GeomEncircle)
export(GeomStateface)
export(GeomXSpline2)
@ -24,6 +25,7 @@ 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

@ -0,0 +1,71 @@
#' 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)
}
)

BIN
man/figures/coord_proj_01.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

BIN
man/figures/coordproj01.pdf

Binary file not shown.

BIN
man/figures/geom_bkde2d_01.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

BIN
man/figures/geom_bkde_01.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

BIN
man/figures/geom_xspline_01.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

BIN
man/figures/geombkde01.pdf

Binary file not shown.

BIN
man/figures/geombkde2d01.pdf

Binary file not shown.

BIN
man/figures/geomxspline01.pdf

Binary file not shown.

BIN
man/figures/stat_ash_01.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

BIN
man/figures/statash01.pdf

Binary file not shown.

76
man/geom_col.Rd

@ -0,0 +1,76 @@
% 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,10 +1,11 @@
% 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_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_col.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