Type: Package
Title: Streamlined Creation of Segments on the Y-Axis of 'ggplot2' Plots
Version: 1.0.1
Description: The function gggap() streamlines the creation of segments on the y-axis of 'ggplot2' plots which is otherwise not a trivial task to accomplish.
Imports: ggplot2, cowplot, grid
License: GPL-3
Encoding: UTF-8
LazyData: true
RoxygenNote: 6.1.1
URL: https://github.com/cmoralesmx/gggap
BugReports: https://github.com/cmoralesmx/gggap/issues
NeedsCompilation: no
Packaged: 2020-11-17 13:25:12 UTC; cmoralesmx
Author: Carlos Morales [aut, cre], Jiacheng Lou [aut], Jing Zhang [aut], Yizhu Lvy [aut], Zhi Jin [aut]
Maintainer: Carlos Morales <carlosmorales777@gmail.com>
Repository: CRAN
Date/Publication: 2020-11-20 09:20:02 UTC

Define Segments in y-Axis for 'ggplot2'

Description

Easy-to-define segments in y-axis for 'ggplot2'.

Usage

gggap(plot, ylim, segments, tick_width, rel_heights, vjust = 0,
  margin = c(top = 1, right = 2, bottom = 1, left = 1), ...)

Arguments

plot

A 'ggplot2' plot.

ylim

The y-axis limits.

segments

The interval of a segment. If more than one intervals are given, please use list() to concatenate them.

tick_width

One or more numbers for each segmented y-axis.

rel_heights

Numerical vector of relative segmented y-axis and segments heights, default is 1 and 0.

vjust

Vertical justification. Default = 0 (baseline at y).

margin

Margins around the text.

...

Arguments will be handed to plot_grid() in 'cowplot'.

Value

A segmented picture.

Examples

data(mtcars)
library(ggplot2)
p <- ggplot(data = mtcars, aes(x = gear, fill = gear)) +
  geom_bar() +
  ggtitle("Number of Cars by Gears") +
  xlab("Gears")

# single segments and missing tick_width
gggap(
  plot = p,
  segments = c(5, 10),
  ylim = c(0, 50)
)

# tick_width can be one or more numbers
gggap(
  plot = p,
  segments = c(5, 10),
  tick_width = c(1, 10),
  ylim = c(0, 50)
)

# segments list cantains more than one number vectors
gggap(
  plot = p,
  segments = list(c(2.5, 4), c(5, 10)),
  tick_width = c(1, 0.5, 10),
  ylim = c(0, 50)
)

# rel_heights can set the relative height for segments and segmented y-axis
gggap(
  plot = p,
  segments = list(c(2.5, 4), c(5, 10)),
  tick_width = c(1, 0.5, 10),
  rel_heights = c(0.2, 0, 0.2, 0, 1),
  ylim = c(0, 50)
)

# reversed y-axis
p <- ggplot(
  data = mtcars,
  aes(x = gear, fill = gear)) +
  geom_bar() +
  ggtitle("Number of Cars by Gears") +
  xlab("Gears")+
  scale_y_continuous(trans = 'reverse')

#single segments and missing tick_width
gggap(
  plot = p,
  segments = c(10, 5),
  ylim = c(15, 0))

Add Legend to gggap()

Description

Add a legend to a 'ggplot2' plot modified by gggap().

Usage

gggap_legend(plot, margin = c(top = 200, right = 200, bottom = 200, left =
  200))

Arguments

plot

A 'ggplot2' plot.

margin

Margins around the text.

Value

A legend-added picture

Examples

library(ggplot2)
mtcars$gear <- factor(mtcars$gear)
bp <- ggplot(
  data = mtcars,
  aes(x = gear, fill = gear)
) +
geom_bar() +
ggtitle("Number of Cars by Gears") +
xlab("Gears")
gggap(
  plot = bp,
  ylim = c(0, 16),
  segments = c(6, 8)
)
gggap_legend(
  plot = bp,
  margin = c(top = 1, right = 1, bottom = 1, left = 460)
)