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
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
<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" />