Nothing
ss <- data.frame(State=paste("some long text", c("CA", "NY", "TX")),
Prop.Inv=c(0, 1, 0.7),
Year=c(1984, 2015, 1999))
fg <- ggplot() +
geom_point(aes(x=State, y=Prop.Inv), data=ss) +
xlab("STATE SOME REALLY REALLY LONG TEXT THAT MAY OVERLAP TICKS")
## TODO: change the details of getTicks and expect_rotate_anchor to
## test plotly web pages.
getTicks <- function(html, p.name){
xp <- sprintf('//svg[@id="%s"]//g[@id="xaxis"]//text', p.name)
nodes <- getNodeSet(html, xp)
stopifnot(length(nodes) > 0)
sapply(nodes, xmlAttrs)
}
expect_rotate_anchor <- function(info, rotate, anchor){
return()#TODO:remove.
not <- getTicks(info$html, 'not')
expect_match(not["style", ], "text-anchor: middle", fixed=TRUE)
expect_match(not["transform", ], "rotate(0", fixed=TRUE)
rotated <- getTicks(info$html, 'rotated')
expect_match(rotated["style", ], paste("text-anchor:", anchor), fixed=TRUE)
expect_match(rotated["transform", ], paste0("rotate(", rotate), fixed=TRUE)
e.axis <- remDr$findElement(using="css selector", "g#xaxis")
e.text <- e.axis$findChildElement("css selector", "text")
tick.loc <- e.text$getElementLocation()
tick.size <- e.text$getElementSize()
## Subtract a magic number that lets the test pass for un-rotated
## labels in firefox.
tick.bottom.y <- tick.loc$y + tick.size$height - 6
e.title <- remDr$findElement("css selector", "text#xtitle")
title.loc <- e.title$getElementLocation()
expect_true(tick.bottom.y < title.loc$y)
}
## TODO: implement renderHTML which should upload and plot the data,
## then download the rendered HTML using RSelenium to control a
## headless browser.
renderHTML <- function(gg){
gg2list(gg)
}
test_that('no axis rotation is fine', {
info <- renderHTML(fg)
expect_rotate_anchor(info, "0", "middle")
})
test_that('axis.text.x=element_text(angle=90)"', {
rotated <- fg+theme(axis.text.x=element_text(angle=90))
info <- renderHTML(rotated)
expect_rotate_anchor(info, "-90", "end")
})
test_that('axis.text.x=element_text(angle=70) means transform="rotate(-70)"', {
rotated <- fg+theme(axis.text.x=element_text(angle=70))
info <- renderHTML(rotated)
expect_rotate_anchor(info, "-70", "end")
})
## test_that('hjust=0.75 is an error', {
## problem <- fg+theme(axis.text.x=element_text(hjust=0.75)
## expect_error({
## info <- renderHTML(problem)
## }, "ggplotly only supports hjust values 0, 0.5, 1")
## })
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.