Funkyheatmap
Visualising data frames as funky heatmaps π
Install / Use
/learn @funkyheatmap/FunkyheatmapREADME
{funkyheatmap} <img src="https://raw.githubusercontent.com/funkyheatmap/logo/refs/heads/main/src/funkyheatmap_edited.png" align="right" alt="" width=120 />
<!-- badges: start --> <!-- badges: end -->{funkyheatmap} allows generating heatmap-like visualisations for data frames. Funky heatmaps can be fine-tuned by providing annotations of the columns and rows, which allows assigning multiple palettes or geometries or grouping rows and columns together in categories.
Installation
You can install funkyheatmap like so:
install.packages("funkyheatmap")
You can also download {funkyheatmap} as a standalone executable or a Nextflow pipeline.
Example
Letβs use the mtcars dataset as an example of what a funky heatmap
looks like.
library(funkyheatmap)
library(dplyr, warn.conflicts = FALSE)
library(tibble, warn.conflicts = FALSE)
data("mtcars")
data <- mtcars %>%
rownames_to_column("id") %>%
arrange(desc(mpg))
You need to provide some information on how each column should be rendered, for example:
column_info <- tribble(
~id, ~group, ~name, ~geom, ~palette, ~options,
"id", "", "", "text", NA, list(hjust = 0, width = 6),
"mpg", "overall", "Miles / gallon", "bar", "palette1", list(width = 4, legend = FALSE),
"cyl", "overall", "Number of cylinders", "bar", "palette2", list(width = 4, legend = FALSE),
"disp", "group1", "Displacement (cu.in.)", "funkyrect", "palette1", lst(),
"hp", "group1", "Gross horsepower", "funkyrect", "palette1", lst(),
"drat", "group1", "Rear axle ratio", "funkyrect", "palette1", lst(),
"wt", "group1", "Weight (1000 lbs)", "funkyrect", "palette1", lst(),
"qsec", "group2", "1/4 mile time", "circle", "palette2", lst(),
"vs", "group2", "Engine", "circle", "palette2", lst(),
"am", "group2", "Transmission", "circle", "palette2", lst(),
"gear", "group2", "# Forward gears", "circle", "palette2", lst(),
"carb", "group2", "# Carburetors", "circle", "palette2", lst()
)
Now you can generate the funky heatmap:
funky_heatmap(
data,
column_info = column_info,
position_args = position_arguments(expand_xmax = 4)
)
<img src="man/figures/README-heatmap2-1.png" width="100%" />
More information
-
The reference documentation on
funky_heatmap()details the exact formats of each annotation object that you can pass to it. -
Check out the Getting started article in the package documentation for more information on how to customize this visualisation.
-
In
vignette("dynbenchmark", "funkyheatmap")we use funkyheatmap to regenerate the figures from Saelens et al.Β (2019) doi:10.1038/s41587-019-0071-9. -
We used Viash to wrap the
funkyheatmap::funky_heatmap()function as a standalone executable and Nextflow module.
Related Skills
node-connect
338.7kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.6kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
338.7kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
83.6kCommit, push, and open a PR
