/ggshadow

A collection of geoms for R's 'ggplot2' library. geom_shadowpath(), geom_shadowline(), geom_shadowstep() and geom_shadowpoint() functions draw a shadow below lines to make busy plots more aesthetically pleasing. geom_glowpath(), geom_glowline(), geom_glowstep() and geom_glowpoint() add a neon glow around lines to get a steampunk style.

Primary LanguageRGNU General Public License v2.0GPL-2.0

ggshadow

CRAN status License: GPL v2 Lifecycle: stable

The goal of ggshadow is to provide shadow and glow geoms for points and lines plots created with ‘ggplot2’.

⏬ Installation

You can install the development version of ggshadow from GitHub with:

# install.packages("devtools")
pak::pkg_install("marcmenem/ggshadow")

📖 Vignette

## after installing the package
# vignette("ggshadow", package = "ggshadow")

💹 Example

With ggshadow

library(ggplot2)
library(ggshadow)

ggplot(economics_long, aes(date, value01, colour = variable)) +
  geom_shadowline()

Without ggshadow

ggplot(economics_long, aes(date, value01, colour = variable)) +
  geom_line()

ggshadow supports varying the line color

ggplot(
  economics_long,
  aes(date, value01,
    group = variable,
    colour = value01,
    shadowlinewidth = 5 * (1 - value01)
  )
) +
  geom_shadowline(
    shadowcolour = "grey",
    shadowalpha = 0.5
  )

ggshadow also provides a Neon glow style

ggplot(economics_long, aes(date, value01, color = variable)) +
  geom_glowline() +
  guides(color = "none") +
  theme(
    plot.background = element_rect(fill = "#190132"),
    panel.background = element_rect(fill = "#190132")
  )

Neon glow points

ggplot(mtcars, aes(wt, mpg)) +
  geom_glowpoint(color = "yellow") +
  guides(color = "none") +
  theme(
    plot.background = element_rect(fill = "#190132"),
    panel.background = element_rect(fill = "#190132")
  )

Adding a fill below the neon glow line

ggplot(
  economics_long[economics_long$variable %in% c("pop", "unemploy"), ],
  aes(date, value01 - 0.5, color = variable, fill = variable)
) +
  geom_glowline() +
  guides(color = "none", shadowcolour = "none", fill = "none") +
  theme(
    plot.background = element_rect(fill = "#190132"),
    panel.background = element_rect(fill = "#190132")
  )