knitr::opts_chunk$set(echo = FALSE, warning = FALSE, message = FALSE) library(plotly) library(ggplot2) library(palmerpenguins)
Interactive data graphics provides plots that allow users to interact them. One of the most basic types of interaction is through tooltips, where users are provided additional information about elements in the plot by moving the cursor over the plot.
This paper will first review some R packages on interactive graphics and their tooltip implementations. A new package \CRANpkg{ToOoOlTiPs} that provides customized tooltips for plot, is introduced. Some example plots will then be given to showcase how these tooltips help users to better read the graphics.
Some packages on interactive graphics include \CRANpkg{plotly} [@plotly] that interfaces with Javascript for web-based interactive graphics, \CRANpkg{crosstalk} [@crosstalk] that specializes cross-linking elements across individual graphics. The recent R Journal paper \CRANpkg{tsibbletalk} [@RJ-2021-050] provides a good example of including interactive graphics into an article for the journal. It has both a set of linked plots, and also an animated gif example, illustrating linking between time series plots and feature summaries.
\pkg{ToOoOlTiPs} is a packages for customizing tooltips in interactive graphics, it features these possibilities.
The \CRANpkg{palmerpenguins} data [@palmerpenguins] features three penguin species which has a lovely illustration by Alison Horst in Figure \@ref(fig:penguins-alison).
knitr::include_graphics("figures/penguins.png")
Table r knitr::asis_output(ifelse(knitr::is_html_output(), '\\@ref(tab:penguins-tab-interactive)', '\\@ref(tab:penguins-tab-static)'))
prints at the first five rows of the penguins
data:
knitr::kable(head(penguins), format = "html", caption = "A basic table")
knitr::kable(head(penguins), format = "latex", caption = "A basic table") %>% kableExtra::kable_styling(font_size = 7)
Figure r knitr::asis_output(ifelse(knitr::is_html_output(), '\\@ref(fig:penguins-plotly)', '\\@ref(fig:penguins-ggplot)'))
shows an r ifelse(knitr::is_html_output(), 'interactive', '')
plot of the penguins data, made using the r knitr::asis_output(ifelse(knitr::is_html_output(), '\\CRANpkg{plotly}', '\\CRANpkg{ggplot2}'))
package.
p <- penguins %>% ggplot(aes(x = bill_depth_mm, y = bill_length_mm, color = species)) + geom_point() ggplotly(p)
penguins %>% ggplot(aes(x = bill_depth_mm, y = bill_length_mm, color = species)) + geom_point()
We have displayed various tooltips that are available in the package \pkg{ToOoOlTiPs}.
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.