Home

Awesome

<!-- README.md is generated from README.Rmd. Please edit that file -->

ggblur <img src="man/figures/logo-blurred.png" align="right" height=230/>

<!-- badges: start -->

<!-- badges: end -->

ggblur provides geom_point_blur() for use in ggplot - this geom allows you to control the blurriness of the drawn points, but is otherwise identical to the standard geom_point().

What’s in the box?

Similar packages

How it works

Blur is simulated by keeping the original point, and drawing a sequence of larger, faded points behind it (illustrated below).

The number of points rendered is controlled by blur_steps and the distance to which the blur extends beyond the edge of the original point is controlled by blur_size.

Note: Paul Murrell has some experiments to add radial gradients to grid graphics (see his github) and if this becomes part of grid it may be a better method of simulating blur.

<div> <img src="man/figures/point.png" width="45%" align="left"> <img src="man/figures/how.png" width="45%" align="left"> </div> <div style="clear: both;" />

Installation

You can install the development version from GitHub with:

# install.packages("devtools")
devtools::install_github("coolbutuseless/ggblur")

Example 1 - constant blur_size

When not used as a mapped aesthetic within aes(), the same blur_size is applied to every point.

library(ggplot2)
library(ggblur)

ggplot(mtcars) +
  geom_point_blur(aes(mpg, wt), blur_size = 10) +
  theme_bw() + 
  labs(title = "Same blur for each point")
<img src="man/figures/README-example1-1.png" width="100%" />

Example 2 - mapping blur_size as an aesthetic

When used as a mapped aesthetic within aes(), the blur_size is calculated individually for each point.

library(ggplot2)
library(ggblur)

ggplot(mtcars) +
  geom_point_blur(aes(mpg, wt, blur_size = disp)) +
  theme_bw() + 
  labs(title = "Larger blur indicates larger engine displacement")
<img src="man/figures/README-example2-1.png" width="100%" />

Example 3 - control over blur parameters

blur_steps and scale_blue_size_continuous/discrete/manual() can be used to further customise the appearance.

ggplot(mtcars) +
  geom_point_blur(aes(mpg, wt, blur_size = disp), blur_steps = 3) +
  scale_blur_size_continuous(range = c(1, 15)) +
  theme_bw() + 
  labs(title = "Larger blur indicates larger engine displacement")
<img src="man/figures/README-example3-1.png" width="100%" />

Example 4 - blur with colour

ggplot(mtcars) +
  geom_point_blur(aes(mpg, wt, blur_size = disp, colour = as.factor(cyl))) +
  scale_blur_size_continuous(range = c(1, 15)) +
  theme_bw() + 
  labs(title = "Larger blur indicates larger engine displacement")
<img src="man/figures/README-example4-1.png" width="100%" />