Nothing
acontext("legends")
data(WorldBank, package="animint2")
breaks <- 10^(4:9)
viz <-
list(ts=ggplot()+
make_tallrect(WorldBank, "year")+
geom_line(aes(year, life.expectancy, group=country, colour=region),
clickSelects="country",
data=WorldBank, size=3, alpha=3/5),
scatter=ggplot()+
geom_point(aes(fertility.rate, life.expectancy, colour=region, size=population),
clickSelects="country",
showSelected=c("year"),
data=WorldBank)+
geom_text(aes(fertility.rate, life.expectancy, label=country),
showSelected=c("country", "year"),
data=WorldBank)+
make_text(WorldBank, 5, 80, "year")+
scale_size_animint(breaks=breaks))
test_that('breaks are respected', {
info <- animint2dir(viz, open.browser=FALSE)
entries <- info$plots$scatter$legend$population$entries
label.chr <- sapply(entries, "[[", "label")
label.num <- as.numeric(label.chr)
expect_equal(sort(label.num), sort(breaks))
})
test_that('hiding both legends works with geom_point(show.legend=FALSE)', {
viz$scatter <- ggplot()+
geom_point(aes(fertility.rate, life.expectancy, colour=region, size=population),
clickSelects="country",
showSelected=c("year"),
data=WorldBank, show.legend=FALSE)+
geom_text(aes(fertility.rate, life.expectancy, label=country),
showSelected=c("country", "year"),
data=WorldBank)+
make_text(WorldBank, 5, 80, "year")
info <- animint2dir(viz, open.browser=FALSE)
generated.names <- names(info$plots$scatter$legend)
expect_identical(length(generated.names), 0L)
})
test_that('hiding the color legend works with scale_color(guide="none")',{
viz$scatter <- viz$scatter+
scale_color_discrete(guide="none")
info <- animint2dir(viz, open.browser=FALSE)
generated.names <- names(info$plots$scatter$legend)
expect_identical(generated.names, "population")
})
test_that('hiding the color legend works with guides(color="none")',{
viz$scatter <- viz$scatter+
guides(color="none")
info <- animint2dir(viz, open.browser=FALSE)
generated.names <- names(info$plots$scatter$legend)
expect_identical(generated.names, "population")
})
test_that('hiding all legends works with theme(legend.position="none")',{
viz$scatter <- viz$scatter+
theme(legend.position="none")
info <- animint2dir(viz, open.browser=FALSE)
generated.names <- names(info$plots$scatter$legend)
expect_identical(generated.names, NULL)
})
error.types <-
data.frame(x=1:3, status=c("correct", "false positive", "false negative"))
gg <-
ggplot(error.types)+
geom_point(aes(x, x))+
geom_tallrect(aes(xmin=x, xmax=x+0.5, fill=x),
color="black")
expected.legend.list <-
list(increasing=1:3,
default=seq(3, 1, by=-0.5),
decreasing=3:1)
test_that("renderer shows legend entries in correct order", {
viz <-
list(increasing=gg+
scale_fill_continuous(breaks=1:3),
decreasing=gg+
scale_fill_continuous(breaks=3:1),
default=gg)
info <- animint2HTML(viz)
##sapply(info$plots, function(p)sapply(p$legend$x$entries, "[[", "label"))
## NOTE: it is important to test the renderer here (not the
## compiler) since maybe the order specified in the plot.json file
## is not the same as the order of appearance on the web page.
## The expected behavior is smaller numeric entries on the bottom of
## the legend by default, and if they are manually specified via
## breaks, we have:
breaks <-
c("top",
"middle",
"bottom")
for(plot.name in names(expected.legend.list)){
xpath <-
sprintf('//td[@class="%s_legend"]//td[@class="legend_entry_label"]',
plot.name)
expected.entries <- expected.legend.list[[plot.name]]
node.set <- getNodeSet(info$html, xpath)
value.str <- sapply(node.set, xmlValue)
value.num <- as.numeric(value.str)
expect_equal(value.num, expected.entries)
}
})
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.