WebGL Text and Annotations in R
How to add WebGL text labels and annotations to plots in R.
Plotly Studio: Transform any dataset into an interactive data application in minutes with AI. Sign up for early access now.
Heatmap with Annotations
library(plotly)
library(random)
n=250
t=12
x = c(rep(0:(n-1), times=t))
y = c(rep(0:(t-1), each=n))
z = randomNumbers(n=n*t, min=1, max=10, col=n)
text = c(replicate(t*n, sample(c("A","T","G","C"), 1)))
steps = list()
for (e in c(0:(n-30))){
step <- list(
list(
args = list('xaxis.range', c(-0.5 + e, 30.5 + e)),
method = "relayout",
label = e,
value = e
)
)
steps[e] <- step
}
fig <- plot_ly()
fig <- fig %>%
add_trace(
type='heatmap',
z = z
)
fig <- fig %>%
add_trace(
mode = "text",
text = text,
type = "scattergl",
textfont = list(
size = 20
),
x = x,
y = y
)
fig <- fig %>%
layout(
xaxis = list(
range = c(-0.5, 30.5),
showline = F,
zeroline = F,
showgrid = F
),
yaxis = list(
showline = F,
zeroline = F,
showgrid = F
),
sliders=list(
list(
active = 0,
steps = steps
)
)
)
fig
Reference
See https://plotly.com/r/reference/#scattergl for more information and chart attribute options!
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)