Nothing
# generate test data for testing
locations <- data.frame(
long = c(-74, 139, 37, 151),
lat = c(40, 35, 55, -33)
)
dates <- seq(as.Date("2024-01-01"), by = "day", length.out = 365)
data <- expand.grid(date = dates, long = locations$long, lat = locations$lat)
data$min <- rnorm(nrow(data), mean = 10, sd = 5)
data$max <- data$min + runif(nrow(data), min = 0, max = 10)
test_that("Plot returns ggplot object" ,{
p <- data |>
ggplot2::ggplot(
ggplot2::aes(x_major = long, y_major = lat,
x_minor = date, ymin_minor = min, ymax_minor = max)) +
geom_glyph_ribbon()
expect_s3_class(p, "ggplot")
})
test_that("geom_ribbon() checks the aesthetics", {
# omit ymax_minor
p <- ggplot2::ggplot(data,
ggplot2::aes(x_major = long, y_major = lat,
x_minor = date, ymin_minor = min)) +
geom_glyph_ribbon()
expect_error(ggplot2::ggplotGrob(p))
p <- ggplot2::ggplot(data,
ggplot2::aes(x_major = long, ymax_minor = max,
x_minor = date, ymin_minor = min)) +
geom_glyph_ribbon()
expect_error(ggplot2::ggplotGrob(p))
p <- ggplot2::ggplot(data,
ggplot2::aes(x_major = long, y_major = lat, ymax_minor = max,
x_minor = as.character(date), ymin_minor = min)) +
geom_glyph_ribbon(width = "a")
expect_error(ggplot2::ggplotGrob(p))
p <- ggplot2::ggplot(data,
ggplot2::aes(x_major = long, y_major = lat, ymax_minor = max,
x_minor = as.character(date), ymin_minor = min)) +
geom_glyph_ribbon(height = "b")
expect_error(ggplot2::ggplotGrob(p))
})
test_that("geom_ribbon interacts correctly with other geoms", {
df <- data.frame(long = 1,
lat = 10,
date = seq(as.Date('2020-01-01'), by = "1 day", length.out = 5),
min = runif(5),
max = runif(5, 1, 2))
p <- df |>
ggplot2::ggplot(
ggplot2::aes(x_major = long, y_major = lat,
x_minor = date, ymin_minor = min, ymax_minor = max)) +
geom_glyph_ribbon() +
ggplot2::geom_point()
expect_s3_class(p, "ggplot")
})
test_that("geom_glyph_ribbon() works", {
skip_if_not_installed("vdiffr")
p <- ggplot2::ggplot(data = aus_temp) +
ggplot2::geom_sf(data = ozmaps::abs_ste, color = "white")
P1 <- p + geom_glyph_ribbon(
width = 0.4,
height = 0.1,
ggplot2::aes(
x_major = long,
y_major = lat,
x_minor = month,
ymin_minor = tmin,
ymax_minor = tmax)
) +
ggthemes::theme_map()
P2 <- p + geom_glyph_ribbon(
global_rescale = FALSE,
ggplot2::aes(
x_major = long,
y_major = lat,
x_minor = month,
ymin_minor = tmin,
ymax_minor = tmax)
) +
ggthemes::theme_map()
P3 <- p + geom_glyph_ribbon(
global_rescale = TRUE,
ggplot2::aes(
x_major = long,
y_major = lat,
x_minor = month,
ymin_minor = tmin,
ymax_minor = tmax)
) +
ggthemes::theme_map()
P4 <- aus_temp |> ggplot2::ggplot(
ggplot2::aes(x_major = long,
y_major = lat,
x_minor = month,
ymin_minor = tmin,
ymax_minor = tmax)) +
ggplot2::geom_sf(data = ozmaps::abs_ste, color = "white", inherit.aes = FALSE) +
add_glyph_boxes() +
add_ref_lines() +
geom_glyph_ribbon() +
ggthemes::theme_map()
vdiffr::expect_doppelganger("geom_glyph_ribbon_identity", P1)
vdiffr::expect_doppelganger("geom_glyph_ribbon_local_rescale", P2)
vdiffr::expect_doppelganger("geom_glyph_ribbon_global_rescale", P3)
vdiffr::expect_doppelganger("geom_glyph_ribbon_all", P4)
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.