Drawing Basic Plots with Images
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
R
inst/extdata
man
.Rbuildignore
.gitignore
DESCRIPTION
NAMESPACE
README-Annapurna-1.png
README-NYC-1.png
README.Rmd
README.md

README.md

ggwithimages - Drawing Basic Plots with Images

This package allows you to plot basic plots (currently lines and histograms) using images. You kinda have to see it to get it...

Install:

devtools::install_github("gsimchoni/ggwithimages")

Load:

library(ggwithimages)

Draw a line plot with the Annapurna mountains:

annapurna <- png::readPNG(system.file("extdata", "annapurna.png", package = "ggwithimages"))
sky <- png::readPNG(system.file("extdata", "sky.png", package = "ggwithimages"))
kathmandu_hourly_aqi <- readr::read_csv(system.file("extdata", "kathmandu_hourly_aqi.csv", package = "ggwithimages"))
#> Parsed with column specification:
#> cols(
#>   hour = col_integer(),
#>   aqi = col_double()
#> )

library(ggplot2)
ggplot(kathmandu_hourly_aqi, aes(hour, aqi)) +
  geom_line_with_image(annapurna, sky) +
  labs(title = "Air Quality Index in the Thamel, Kathmandu, Nepal",
       subtitle = "Measured in PM2.5 by the US Embassy in Kathmandu",
       y = "Hourly Mean AQI [PM2.5]",
       x = "Hour") +
  ylim(c(50, 200)) +
  theme(text = element_text(family="mono"),
        axis.title.x = element_text(size=12),
        axis.title.y = element_text(size=12))
#> Warning in geom_line_with_image(annapurna, sky): bottomImg and topImg have
#> different sizes, will take the minimum in each dimension

Draw a histogram with NYC buildings:

nyc <- png::readPNG(system.file("extdata", "nyc.png", package = "ggwithimages"))
night_sky <- png::readPNG(system.file("extdata", "night_sky.png", package = "ggwithimages"))
nyc_accidents <- readr::read_csv(system.file("extdata", "nyc_accidents.csv", package = "ggwithimages"))
#> Parsed with column specification:
#> cols(
#>   date = col_character(),
#>   n_accidents = col_integer()
#> )

library(ggplot2)
ggplot(nyc_accidents, aes(n_accidents)) +
  geom_hist_with_image(nyc, night_sky) +
  labs(title = "NYC Daily No. of Accidents Distribution",
       subtitle = "Data Obtained on January 3, 2018 from NYC OpenData",
       y = "Frequency",
       x = "Daily No. of Accidents") +
  ylim(c(0, 700)) +
  xlim(c(0, 1300)) +
  theme(text = element_text(family="mono"),
        axis.title.x = element_text(size=12),
        axis.title.y = element_text(size=12))
#> Warning in geom_hist_with_image(nyc, night_sky): bottomImg and topImg have
#> different sizes, will take the minimum in each dimension

See more in this blog post.