Learn R Programming

⚠️There's a newer version (1.0.3) of this package.Take me there.

ggperiodic

ggperiodic is an attempt to solve the issue of plotting periodic data in ggplot2. It automatically augments your data to wrap it around to any arbitrary domain.

Installation

You can install the latest version from CRAN with

install.packages("ggperiodic")

Or you can install the development version from GitHub with:

# install.packages("devtools")
devtools::install_github("eliocamp/ggperiodic")

Example

Let’s create some artificial data with periodic domain

x <- seq(0, 360 - 10, by = 10)*pi/180
y <- seq(-90, 90, by = 10)*pi/180

Z <- expand.grid(x = x, y = y)
Z$z <- with(Z, 1.2*sin(x)*0.4*sin(y*2) - 
               0.5*cos(2*x)*0.5*sin(3*y) + 
               0.2*sin(4*x)*0.45*cos(2*x))

Z$x <- Z$x*180/pi
Z$y <- Z$y*180/pi

If you try to plot it, you’ll notice problems at the limits

library(ggplot2)
ggplot(Z, aes(x, y, z = z, color = ..level..)) +
  geom_contour() +
  coord_polar()

With ggperiodic you can define the periodic dimensions and ggplot2 does the rest.

library(ggperiodic)
#> 
#> Attaching package: 'ggperiodic'
#> The following object is masked from 'package:stats':
#> 
#>     filter
Z <- periodic(Z, x = c(0, 360))

ggplot(Z, aes(x, y, color = ..level..)) +
  geom_contour(aes(z = z)) +
  coord_polar()

Copy Link

Version

Install

install.packages('ggperiodic')

Monthly Downloads

301

Version

1.0.0

License

GPL-3

Issues

Pull Requests

Stars

Forks

Maintainer

Elio Campitelli

Last Published

March 12th, 2019

Functions in ggperiodic (1.0.0)

unperiodic

Remove periodic specifications
qwrap

Quickly wrap data
wrap

Wrap periodic data to an arbitrary range
reexports

Objects exported from other packages
is.periodic

Check if an object is periodic
periodic

Add or remove periodic variables
get_period

Get period information from an object
ggperiodic

ggperiodic: Easy Plotting of Periodic Data with 'ggplot2'