Heatmaps in R
How to make a heatmap in R with a matrix. Seven examples of colored and labeled heatmaps with custom colorscales.
Plotly Studio: Transform any dataset into an interactive data application in minutes with AI. Sign up for early access now.
Basic Heatmap
library(plotly)
fig <- plot_ly(z = volcano, type = "heatmap")
fig
Categorical Axes
m <- matrix(rnorm(9), nrow = 3, ncol = 3)
fig <- plot_ly(
x = c("a", "b", "c"), y = c("d", "e", "f"),
z = m, type = "heatmap"
)
fig
Sequential Colorscales: Greys
The colors
argument understands color brewer palettes (see RColorBrewer::brewer.pal.info
for valid names).
fig <- plot_ly(z = volcano, colors = "Greys", type = "heatmap")
fig
Custom colorscales
The colors
argument also accepts a color interpolation function like colorRamp()
fig <- plot_ly(z = volcano, colors = colorRamp(c("red", "green")), type = "heatmap")
fig
Or, you can do the scaling yourself and use the colorscale attribute directly...
vals <- unique(scales::rescale(c(volcano)))
o <- order(vals, decreasing = FALSE)
cols <- scales::col_numeric("Blues", domain = NULL)(vals)
colz <- setNames(data.frame(vals[o], cols[o]), NULL)
fig <- plot_ly(z = volcano, colorscale = colz, type = "heatmap")
fig
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)