Export your tabviz widgets to static files for publications, presentations, and sharing.

Quick Example

Let’s create a forest plot and export it to SVG.

Code
data(glp1_trials)

p <- glp1_trials |>
  filter(row_type == "data", group == "Main Trials") |>
  head(5) |>
  tabviz(
    label = "study",
    columns = list(
      col_text("drug", "Drug"),
      viz_forest(point = "hr", lower = "lower", upper = "upper",
                 scale = "log", null_value = 1, width = 180),
      col_interval("HR (95% CI)", point = "hr", lower = "lower", upper = "upper")
    ),
    theme = web_theme_jama(),
    title = "GLP-1 Agonist Cardiovascular Outcomes"
  )

p

Now export to SVG:

Code
save_plot(p, "export-examples/forest_example.svg", width = 700)

Here’s the exported SVG:

Exported SVG

Format Comparison

  • SVG: Vector format, infinite scalability, best for journals and editing
  • PNG: Raster format, good for presentations (use scale = 2 or higher)
  • PDF: Vector format, best for print publications

SVG Export

SVG is the recommended format for most uses. No external dependencies required.

Code
# Bar chart example
bar_data <- data.frame(
  department = c("Cardiology", "Oncology", "Neurology", "Pediatrics"),
  enrollment = c(245, 312, 189, 156)
)

p_bar <- tabviz(bar_data, label = "department",
  columns = list(
    viz_bar(effect_bar("enrollment", color = "#3b82f6"),
            header = "Enrollment", width = 180, axis_range = c(0, 350)),
    col_numeric("enrollment", "N")
  ),
  theme = web_theme_modern(),
  title = "Trial Enrollment by Department"
)

save_plot(p_bar, "export-examples/bar_example.svg", width = 500)

Bar Chart Export

Themed Exports

JAMA Theme

Code
p_jama <- glp1_trials |>
  filter(row_type == "data", group == "Main Trials") |>
  head(4) |>
  tabviz(
    label = "study",
    columns = list(
      viz_forest(point = "hr", lower = "lower", upper = "upper",
                 scale = "log", null_value = 1, width = 160),
      col_interval("HR (95% CI)", point = "hr", lower = "lower", upper = "upper")
    ),
    theme = web_theme_jama(),
    title = "Figure 1. Primary Endpoint"
  )

save_plot(p_jama, "export-examples/jama_theme.svg", width = 500)

JAMA Theme

Dark Theme

Code
p_dark <- glp1_trials |>
  filter(row_type == "data", group == "Main Trials") |>
  head(4) |>
  tabviz(
    label = "study",
    columns = list(
      viz_forest(point = "hr", lower = "lower", upper = "upper",
                 scale = "log", null_value = 1, width = 160),
      col_interval("HR (95% CI)", point = "hr", lower = "lower", upper = "upper")
    ),
    theme = web_theme_dark(),
    title = "Dark Theme Export"
  )

save_plot(p_dark, "export-examples/dark_theme.svg", width = 500)

Dark Theme

PNG and PDF Export

PNG and PDF require Chrome/Chromium installed on your system.

# PNG at 2x resolution
save_plot(p, "figure.png", width = 800, scale = 2)

# PDF for print
save_plot(p, "figure.pdf", width = 800)

Resolution Guide

For PNG exports, use scale parameter:

  • scale = 1: 72 DPI (quick preview)
  • scale = 2: 144 DPI (web/screen)
  • scale = 3: 216 DPI (presentations)
  • scale = 4: 288 DPI (high-res print)

See Also