Learn R Programming

⚠️There's a newer version (2.2.1) of this package.Take me there.

svglite

svglite is a graphics device that produces clean svg output, suitable for use on the web, or hand editing. Compared to the built-in svg(), svglite is considerably faster, produces smaller files, and leaves text as is.

Installation

Install the development version from github with:

# install.packages("devtools")
devtools::install_github("r-lib/svglite")

Benchmarks

Compared to the base svg device, svglite is quite a bit faster:

library(svglite)
x <- runif(1e3)
y <- runif(1e3)

tmp1 <- tempfile()
tmp2 <- tempfile()
system.time({
  svglite(tmp1)
  plot(x, y)
  dev.off()
})
#>    user  system elapsed 
#>   0.003   0.001   0.003 

system.time({
  svg(tmp2, onefile = TRUE)
  plot(x, y)
  dev.off()
})
#>    user  system elapsed 
#>   0.015   0.001   0.017 

It also produces considerably smaller files:

file.size(tmp1) / 1024
#> [1] 93.54785
file.size(tmp2) / 1024
#> [1] 321.1357

In both cases, compressing to make .svgz is worthwhile:

gz <- function(in_path, out_path = tempfile()) {
  out <- gzfile(out_path, "w")
  writeLines(readLines(in_path), out)
  close(out)
  
  invisible(out_path)
}
file.size(gz(tmp1)) / 1024
#> [1] 9.064453
file.size(gz(tmp2)) / 1024
#> [1] 38.6123

Copy Link

Version

Install

install.packages('svglite')

Monthly Downloads

128,952

Version

1.2.3

License

GPL (>= 2)

Issues

Pull Requests

Stars

Forks

Maintainer

Thomas Lin Pedersen

Last Published

February 7th, 2020

Functions in svglite (1.2.3)

stringSVG

Run plotting code and return svg as string
svglite

An SVG Graphics Driver
svgstring

Access current SVG as a string.
editSVG

Run plotting code and open svg in OS/system default svg viewer or editor.
xmlSVG

Run plotting code and return svg
htmlSVG

Run plotting code and view svg in RStudio Viewer or web broswer.