acontext("Labels")
# create some objects that will be reused
ggpoint <- ggplot() + geom_point(aes(Petal.Width, Sepal.Width), data = iris)
test_that("ggtitle converts", {
viz <- list(scatter=ggpoint + ggtitle("My amazing plot!"))
info <- animint2HTML(viz)
expect_identical(info$plots$scatter$title, "My amazing plot!")
ptitle <- getNodeSet(info$html, "//text[@class='plottitle']")
expect_identical(xmlValue(ptitle[[1]]), "My amazing plot!")
})
test_that("ylab converts", {
viz <- list(scatter=ggpoint + ylab("Sepal Width"))
info <- animint2HTML(viz)
expect_identical(info$plots$scatter$ytitle, "Sepal Width")
ylabel <- getNodeSet(info$html, "//text[@class='ytitle']")
expect_identical(xmlValue(ylabel[[1]]), "Sepal Width")
})
test_that("scale_x_continuous(name) converts", {
viz <- list(scatter=ggpoint + scale_x_continuous("Petal Width"))
info <- animint2HTML(viz)
expect_identical(info$plots$scatter$xtitle, "Petal Width")
xlabel <- getNodeSet(info$html, "//text[@class='xtitle']")
expect_identical(xmlValue(xlabel[[1]]), "Petal Width")
})
test_that("scale_x_continuous(breaks)+xlab(name) converts", {
viz <-
list(scatter=ggplot() +
geom_point(aes(Petal.Length, Sepal.Length), data = iris) +
scale_x_continuous(breaks = c(1.5, 6.5)) +
xlab("Petal Length"))
info <- animint2HTML(viz)
expect_identical(info$plots$scatter$xtitle, "Petal Length")
expect_identical(as.character(info$plots$scatter$axis$xlab), c("1.5", "6.5"))
xlabel <- getNodeSet(info$html, "//text[@class='xtitle']")
expect_identical(xmlValue(xlabel[[1]]), "Petal Length")
xticks <- getNodeSet(
info$html, "//g[contains(@class, 'xaxis')]/g[@class='tick major']")
expect_identical(sapply(xticks, xmlValue), c("1.5", "6.5"))
})
stocks <- data.frame(
time = as.Date('2009-01-01') + 0:89,
vars = rep(c("A", "B", "C"), 30),
value = rnorm(90)
)
series <- ggplot() + geom_line(aes(x = time, y = value, group = vars), data = stocks)
test_that("scale_x_time ticks/labels work", {
info <- animint2HTML(list(series = series))
xticks <- getNodeSet(
info$html, "//g[contains(@class, 'xaxis')]/g[@class='tick major']")
expect_true(length(xticks) > 1)
})
getTickText <- function(html, id){
xpath <- sprintf(
"//g[contains(@class, '%s')]//g[@class='tick major']//text", id)
nodes <- getNodeSet(html, xpath)
sapply(nodes, xmlValue)
}
is.blank <- function(ticks){
all(ticks == "")
}
test_that("plot renders with theme(axis.text.x=element_blank())", {
viz <- list(series=series+theme(axis.text.x=element_blank()))
info <- animint2HTML(viz)
xticks <- getTickText(info$html, "xaxis")
expect_true(is.blank(xticks))
yticks <- getTickText(info$html, "yaxis")
expect_true(!is.blank(yticks))
})
test_that("plot renders with theme(axis.text.y=element_blank())", {
viz <- list(series=series+theme(axis.text.y=element_blank()))
info <- animint2HTML(viz)
xticks <- getTickText(info$html, "xaxis")
expect_true(!is.blank(xticks))
yticks <- getTickText(info$html, "yaxis")
expect_true(is.blank(yticks))
})
test_that("plot renders with theme(axis.text=element_blank())", {
viz <- list(series=series+theme(axis.text=element_blank()))
info <- animint2HTML(viz)
xticks <- getTickText(info$html, "xaxis")
expect_true(is.blank(xticks))
yticks <- getTickText(info$html, "yaxis")
expect_true(is.blank(yticks))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.