Nothing
test_that("uses scale limits, not data limits", {
base <- ggplot(mtcars, aes(wt, mpg)) +
stat_density_2d() +
scale_x_continuous(limits = c(1, 6)) +
scale_y_continuous(limits = c(5, 40))
ret <- layer_data(base)
# Check that the contour data goes beyond data range.
# The specific values below are sort of arbitrary; but they go beyond the range
# of the data
expect_true(min(ret$x) < 1.2)
expect_true(max(ret$x) > 5.8)
expect_true(min(ret$y) < 8)
expect_true(max(ret$y) > 35)
})
test_that("stat_density2d can produce contour and raster data", {
p <- ggplot(faithful, aes(x = eruptions, y = waiting))
p_contour_lines <- p + stat_density_2d()
p_contour_bands <- p + stat_density_2d_filled()
p_raster <- p + stat_density_2d(contour = FALSE)
d_lines <- layer_data(p_contour_lines)
expect_true("level" %in% names(d_lines))
expect_false("level_low" %in% names(d_lines))
expect_true(is.numeric(d_lines$level))
d_bands <- layer_data(p_contour_bands)
expect_true("level" %in% names(d_bands))
expect_true("level_low" %in% names(d_bands))
expect_true(is.ordered(d_bands$level))
d_raster <- layer_data(p_raster)
expect_true("density" %in% names(d_raster))
expect_true("ndensity" %in% names(d_raster))
expect_true("count" %in% names(d_raster))
expect_true(unique(d_raster$level) == 1)
expect_true(unique(d_raster$piece) == 1)
# stat_density_2d() and stat_density_2d_filled() produce identical
# density output with `contour = FALSE`
# (`fill` and `colour` will differ due to different default aesthetic mappings)
d_raster2 <- layer_data(p + stat_density_2d_filled(contour = FALSE))
expect_identical(d_raster$x, d_raster2$x)
expect_identical(d_raster$y, d_raster2$y)
expect_identical(d_raster$density, d_raster2$density)
expect_identical(d_raster$ndensity, d_raster2$ndensity)
expect_identical(d_raster$count, d_raster2$count)
# stat_density_2d() with contouring is the same as stat_contour() on calculated density
p_lines2 <- ggplot(d_raster, aes(x, y, z = density)) + stat_contour()
d_lines2 <- layer_data(p_lines2)
expect_identical(d_lines$x, d_lines2$x)
expect_identical(d_lines$y, d_lines2$y)
expect_identical(d_lines$piece, d_lines2$piece)
expect_identical(d_lines$group, d_lines2$group)
expect_identical(d_lines$level, d_lines2$level)
# same for stat_density_2d_filled()
p_bands2 <- ggplot(d_raster, aes(x, y, z = density)) + stat_contour_filled()
d_bands2 <- layer_data(p_bands2)
expect_identical(d_bands$x, d_bands2$x)
expect_identical(d_bands$y, d_bands2$y)
expect_identical(d_bands$piece, d_bands2$piece)
expect_identical(d_bands$group, d_bands2$group)
expect_identical(d_bands$level, d_bands2$level)
expect_identical(d_bands$level_mid, d_bands2$level_mid)
# and for contour_var = "ndensity"
p_contour_lines <- p + stat_density_2d(contour_var = "ndensity")
d_lines <- layer_data(p_contour_lines)
p_lines2 <- ggplot(d_raster, aes(x, y, z = ndensity)) + stat_contour()
d_lines2 <- layer_data(p_lines2)
expect_identical(d_lines$x, d_lines2$x)
expect_identical(d_lines$y, d_lines2$y)
expect_identical(d_lines$piece, d_lines2$piece)
expect_identical(d_lines$group, d_lines2$group)
expect_identical(d_lines$level, d_lines2$level)
# and for contour_var = "count"
p_contour_bands <- p + stat_density_2d_filled(contour_var = "count")
d_bands <- layer_data(p_contour_bands)
p_bands2 <- ggplot(d_raster, aes(x, y, z = count)) + stat_contour_filled()
d_bands2 <- layer_data(p_bands2)
expect_identical(d_bands$x, d_bands2$x)
expect_identical(d_bands$y, d_bands2$y)
expect_identical(d_bands$piece, d_bands2$piece)
expect_identical(d_bands$group, d_bands2$group)
expect_identical(d_bands$level, d_bands2$level)
expect_identical(d_bands$level_mid, d_bands2$level_mid)
# error on incorrect contouring variable
expect_snapshot_error(ggplot_build(p + stat_density_2d(contour_var = "abcd")))
})
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.