{qnp}

Lifecycle: experimental R-CMD-check Codecov test coverage License: MIT

The goal of {qnp} (“quarto-notes plots”) is to provide helpers for including plots in Quarto notes. It currently provides one function, interactive_plot(), which makes a {ggplot2} plot interactive in HTML output and leaves it unchanged in other output formats.

Installation

You can install the development version of {qnp} from GitHub with:

# install.packages("pak")
pak::pak("Morrison-Lab/qnp")

Example

interactive_plot() takes a ggplot and a text alternative (alt) for the plot:

library(ggplot2)
library(qnp)

p <- ggplot(mtcars, aes(wt, mpg)) +
  geom_point()

interactive_plot(
  plot = p,
  alt = "Scatterplot of fuel economy versus car weight",
  is_html = FALSE
)

Scatterplot of fuel economy (miles per gallon) versus car weight

In HTML output (the default, via is_html = knitr::is_html_output()), the result is an interactive plotly widget wrapped in a <div> with role = "img" and aria-label = alt, so that screen readers announce it as a single image. In other output formats, the original ggplot is returned unchanged. This README is rendered to GitHub-flavored Markdown, which knitr counts as an HTML output format, so the example sets is_html = FALSE explicitly to show the static plot.

See USAGE.md for more details.

Development

Building the Documentation Site

This package uses altdoc with Quarto to build its documentation site. To build and preview the documentation locally:

# Load the package
pkgload::load_all()

# Render the documentation
altdoc::render_docs()

# Preview the site
altdoc::preview_docs()

The documentation is automatically built and deployed to GitHub Pages via GitHub Actions when changes are pushed to the main branch.

Why a separate repository

{qnp} is an R package, and the notes sites that use it are Quarto websites, so the two live in separate repositories. The decision and its reasons are in the lab’s repository-template guidance. The notes on choosing colors are in the visualization notes.

Code of Conduct

Please note that the {qnp} project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.