visualizations

TuxVizRPlot

Branded chrome around an R-language plot artifact. R produces charts as one of three things — static raster (PNG), static vector (SVG), or interactive widget (HTML). This component normalizes the editorial frame across all three so research reports keep the same chrome regardless of artifact type.

This component does not run R. Pre-render artifacts via ggsave(), htmlwidgets::saveWidget(), or your Quarto build, then point src at the result.

svg · ggplot ggsave

Faceted bar chart

ggplot2 · facet_wrap

Grant draws by sponsor — FY26 by quarter

R · svg
R 4.4.1 · ggplot2 3.5.1 · scripts/grants-by-quarter.R
<tux-viz-rplot
  kind="svg"
  src="/viz-rplot-grants.svg"
  title="Grant draws by sponsor — FY26 by quarter"
  eyebrow="ggplot2 · facet_wrap"
  ratio="8/5"
  source="R 4.4.1 · ggplot2 3.5.1 · scripts/grants-by-quarter.R"
/>

api

Three artifact kinds

kind="image"

PNG / JPG. Use src2x for retina.

<tux-viz-rplot
  kind="image"
  src="/charts/q1-grants.png"
  src2x="/charts/q1-grants@2x.png"
  title="Grant draws by source · 2026 Q1"
  eyebrow="ggplot2 · facet_wrap"
  ratio="16/10"
  source="R 4.4.1 · ggplot2 3.5 · scripts/q1-grants.R"
/>

kind="svg"

Vector. Embedded via <object> so it stays interactive.

<tux-viz-rplot
  kind="svg"
  src="/viz-rplot-grants.svg"
  title="Grant draws by sponsor — FY26 by quarter"
  eyebrow="ggplot2 · facet_wrap"
  ratio="8/5"
  source="R 4.4.1 · ggplot2 3.5.1 · scripts/grants-by-quarter.R"
/>

kind="html"

htmlwidget (plotly, leaflet, DT). Sandboxed iframe.

<tux-viz-rplot
  kind="html"
  src="/charts/funding-stream.html"
  title="Funding stream · interactive"
  eyebrow="plotly::ggplotly"
  ratio="16/9"
  source="scripts/funding-stream.Rmd"
/>