Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/thomasp85/ggfx
Filters and Shaders for 'ggplot2'
https://github.com/thomasp85/ggfx
filters ggplot2 graphics rstats
Last synced: 2 days ago
JSON representation
Filters and Shaders for 'ggplot2'
- Host: GitHub
- URL: https://github.com/thomasp85/ggfx
- Owner: thomasp85
- License: other
- Created: 2019-11-29T09:35:15.000Z (about 5 years ago)
- Default Branch: main
- Last Pushed: 2022-10-21T03:59:41.000Z (about 2 years ago)
- Last Synced: 2025-01-10T05:12:42.765Z (9 days ago)
- Topics: filters, ggplot2, graphics, rstats
- Language: R
- Homepage: https://ggfx.data-imaginist.com
- Size: 41 MB
- Stars: 170
- Watchers: 4
- Forks: 4
- Open Issues: 14
-
Metadata Files:
- Readme: README.Rmd
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- awesome-r-dataviz - ggfx - Filters and Shaders for 'ggplot2'. (ggplot / Miscellaneous)
README
---
output: github_document
---```{r, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.path = "man/figures/README-",
out.width = "100%"
)
```[![Lifecycle: experimental](https://img.shields.io/badge/lifecycle-experimental-orange.svg)](https://lifecycle.r-lib.org/articles/stages.html#experimental)
[![Codecov test coverage](https://codecov.io/gh/thomasp85/ggfx/branch/main/graph/badge.svg)](https://app.codecov.io/gh/thomasp85/ggfx?branch=main)
[![R-CMD-check](https://github.com/thomasp85/ggfx/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/thomasp85/ggfx/actions/workflows/R-CMD-check.yaml)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:``` r
# 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.```{r example, message=FALSE, fig.asp=0.4, dev='ragg_png', dpi=300}
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](https://ggfx.data-imaginist.com/CODE_OF_CONDUCT.html). By contributing to this project, you agree to abide by its terms.