Skip to content

Commit

Permalink
geom_col
Browse files Browse the repository at this point in the history
  • Loading branch information
hrbrmstr committed Mar 23, 2016
1 parent 00718d0 commit d580dcc
Show file tree
Hide file tree
Showing 15 changed files with 176 additions and 7 deletions.
31 changes: 25 additions & 6 deletions 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(
Expand All @@ -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
Expand Down Expand Up @@ -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 changes: 2 additions & 0 deletions NAMESPACE
Expand Up @@ -9,6 +9,7 @@ export(CoordProj)
export(Gb)
export(GeomBkde)
export(GeomBkde2d)
export(GeomCol)
export(GeomEncircle)
export(GeomStateface)
export(GeomXSpline2)
Expand All @@ -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)
Expand Down
71 changes: 71 additions & 0 deletions 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)
}
)
Binary file removed man/figures/coord_proj_01.png
Binary file not shown.
Binary file removed man/figures/coordproj01.pdf
Binary file not shown.
Binary file removed man/figures/geom_bkde2d_01.png
Binary file not shown.
Binary file removed man/figures/geom_bkde_01.png
Binary file not shown.
Binary file removed man/figures/geom_xspline_01.png
Binary file not shown.
Binary file removed man/figures/geombkde01.pdf
Binary file not shown.
Binary file removed man/figures/geombkde2d01.pdf
Binary file not shown.
Binary file removed man/figures/geomxspline01.pdf
Binary file not shown.
Binary file removed man/figures/stat_ash_01.png
Binary file not shown.
Binary file removed man/figures/statash01.pdf
Binary file not shown.
76 changes: 76 additions & 0 deletions man/geom_col.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion man/ggalt-ggproto.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit d580dcc

Please sign in to comment.