Hover Text and Formatting in ggplot2

How to use hover text and formatting in ggplot2 with Plotly.


Plotly Studio: Transform any dataset into an interactive data application in minutes with AI. Sign up for early access now.

Maps

library(plotly)

data(canada.cities, package="maps")
p <- ggplot(canada.cities, aes(long, lat)) +
        borders(regions="canada", name="borders") +
        coord_equal() +
        geom_point(aes(text=name, size=pop), colour="red", alpha=1/2, name="cities")

ggplotly(p)

Custom Tooltip

library(plotly)
#install.packages("gapminder")
library(gapminder)

p <- ggplot(gapminder, aes(x = gdpPercap, y = lifeExp, color = continent, text =      paste("country:", country))) +
     geom_point(alpha = (1/3)) + scale_x_log10()  

ggplotly(p)

Inspired by Gapminder Tutorial

Control Events

library(plotly)
#install.packages("gapminder")
library(gapminder)

p <- ggplot(gapminder, aes(x = year, y = lifeExp, text = paste("country:",country))) + 
     geom_point() +
     facet_wrap(~ continent) 

ggplotly(p)

Inspired by Gapminder Tutorial

What About Dash?

Dash for R is an open-source framework for building analytical applications, with no Javascript required, and it is tightly integrated with the Plotly graphing library.

Learn about how to install Dash for R at https://dashr.plot.ly/installation.

Everywhere in this page that you see fig, you can display the same figure in a Dash for R application by passing it to the figure argument of the Graph component from the built-in dashCoreComponents package like this:

library(plotly)

fig <- plot_ly() 
# fig <- fig %>% add_trace( ... )
# fig <- fig %>% layout( ... ) 

library(dash)
library(dashCoreComponents)
library(dashHtmlComponents)

app <- Dash$new()
app$layout(
    htmlDiv(
        list(
            dccGraph(figure=fig) 
        )
     )
)

app$run_server(debug=TRUE, dev_tools_hot_reload=FALSE)