Skip to content

thomasp85/ggfx

main
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
R
April 6, 2021 22:22
man
August 22, 2022 09:25
March 2, 2021 16:52
August 22, 2022 09:51
February 24, 2021 21:53
November 29, 2019 10:29
March 10, 2021 13:28
March 10, 2021 13:28
August 22, 2022 09:24
August 22, 2022 09:24
April 6, 2021 22:37
February 9, 2021 14:41
August 22, 2022 09:40

ggfx

Lifecycle: experimental Codecov test coverage R-CMD-check

ggfx is a (currently experimantal) package that allows the use of various filters and shaders on ggplot2 layers.

Installation

You can install ggfx from CRAN in the usual manner (install.packages('ggfx')) or you can grab the development version directly from github using the devtools package:

# install.packages('devtools')
devtools::install_github('thomasp85/ggfx')

Example

The basic API of ggfx is to provide a range of with_*() modifier functions instead of special versions of common geoms. This means that ggfx will work with any geom from ggplot2 and the extension packages (I think…). An example showing some of the different functionalities are given below. Note that the output is produced with regular geoms.

library(ggplot2)
library(ggfx)
ggplot() + 
  as_reference(
    geom_polygon(aes(c(0, 1, 1), c(0, 0, 1)), colour = NA, fill = 'magenta'), 
    id = "displace_map"
  ) + 
  with_displacement(
    geom_text(aes(0.5, 0.5, label = 'ggfx-ggfx'), size = 25, fontface = 'bold'), 
    x_map = ch_red("displace_map"), 
    y_map = ch_blue("displace_map"),
    x_scale = unit(0.025, 'npc'),
    id = "text"
  ) +
  with_blend(
    geom_density_2d_filled(aes(rnorm(1e4, 0.5, 0.2), rnorm(1e4, 0.5, 0.2)), 
                           show.legend = FALSE),
    bg_layer = "text",
    blend_type = "in",
    id = "blended"
  ) + 
  with_shadow("blended", sigma = 3) + 
  coord_cartesian(xlim = c(0, 1), ylim = c(0, 1), clip = 'off') + 
  labs(x = NULL, y = NULL)

Code of Conduct

Please note that the ggfx project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.