Cairo initializes a new graphics device that uses the cairo
graphics library for rendering. The current implementation produces
high-quality PNG, JPEG, TIFF bitmap files, high resolution PDF files
with embedded fonts, SVG graphics and PostScript files. It also
provides X11 and Windows interactive graphics devices. Unlike other
devices it supports all graphics features including alpha blending,
anti-aliasing etc. CairoX11, CairoPNG, CairoPDF, CairoPS and
CairoSVG are convenience wrappers of Cairo that take the
same arguments as the corresponding device it replaces such as
X11, png, pdf, etc. Use of the Cairo
function is encouraged as it is more flexible than the wrappers.
Cairo(width = 640, height = 480, file="", type="png", pointsize=12,
bg = "transparent", canvas = "white", units = "px", dpi = "auto",
...)CairoX11(display=Sys.getenv("DISPLAY"), width = 7, height = 7,
pointsize = 12, gamma = getOption("gamma"), bg = "transparent",
canvas = "white", xpos = NA, ypos = NA, ...)
CairoPNG(filename = "Rplot%03d.png", width = 480, height = 480,
pointsize = 12, bg = "white", res = NA, ...)
CairoJPEG(filename = "Rplot%03d.jpeg", width = 480, height = 480,
pointsize = 12, quality = 75, bg = "white", res = NA, ...)
CairoTIFF(filename = "Rplot%03d.tiff", width = 480, height = 480,
pointsize = 12, bg = "white", res = NA, ...)
CairoPDF(file = ifelse(onefile, "Rplots.pdf","Rplot%03d.pdf"),
width = 6, height = 6, onefile = TRUE, family = "Helvetica",
title = "R Graphics Output", fonts = NULL, version = "1.1",
paper = "special", encoding, bg, fg, pointsize, pagecentre)
CairoSVG(file = ifelse(onefile, "Rplots.svg", "Rplot%03d.svg"),
width = 6, height = 6, onefile = TRUE, bg = "transparent",
pointsize = 12, ...)
CairoWin(width = 7, height = 7, pointsize = 12,
record = getOption("graphics.record"),
rescale = c("R", "fit", "fixed"), xpinch, ypinch, bg =
"transparent", canvas = "white", gamma = getOption("gamma"),
xpos = NA, ypos = NA, buffered = getOption("windowsBuffered"),
restoreConsole = FALSE, ...)
CairoPS(file = ifelse(onefile, "Rplots.ps", "Rplot%03d.ps"),
onefile = TRUE, family, title = "R Graphics Output", fonts = NULL,
encoding, bg, fg, width, height, horizontal, pointsize, paper,
pagecentre, print.it, command, colormodel)
units).units).file specifies the display name. If NULL or
"" a reasonable default will be chosen wwidth and height
specifications. It can be any of "px" (pixels),
"in" (inches), "pt" (points), "cm"
(centimeters) or "mm""auto" the DPI resolution will be determined by the
back-end.quality
setting for JPEG (0..100) and compression for TIFF
(0,1=none, 5=LZW (default), 7=JPEG, 8=Adobe Deflate)) All parameters listed below are defin
X11X11X11file in Cairopng, will be mapped to dpi
for Cairojpegpdf). false is currently
not supported by vector devicespdfpdf (ignored)pdf, ignored, Cairo
automatically detects and embeds fontspdf (ignored)pdf (ignored, Cairo uses device dimensions)pdf (ignored, Cairo uses
native enconding except for symbols)pdf (ignored)pdf (ignored, Cairo
uses device dimensions and thus it is irrelevant)windows (ignored)windows (ignored)windows (ignored)windows (ignored)windows (ignored, Cairo
always uses cache buffer)windows (ignored)postscript (ignored)postscript (ignored)postscript (ignored)postscript (ignored,
Cairo always uses RGB or ARGB)Cairo object if successful. The vaule of the object is the
device number.CairoFonts# very simple KDE
Cairo(600, 600, file="plot.png", type="png", bg="white")
plot(rnorm(4000),rnorm(4000),col="#ff000018",pch=19,cex=2) # semi-transparent red
dev.off() # creates a file "plot.png" with the above plot
# you can use any Cairo backend and get the same result
# vector, bitmap or on-screen
CairoPDF("plot.pdf", 6, 6, bg="transparent")
data(iris)
attach(iris)
plot(Petal.Length, rep(-0.03,length(Species)), xlim=c(1,7),
ylim=c(0,1.7), xlab="Petal.Length", ylab="Density",
pch=21, cex=1.5, col="#00000001", main = "Iris (yet again)",
bg=c("#ff000020","#00ff0020","#0000ff20")[unclass(Species)])
for (i in 1:3)
polygon(density(Petal.Length[unclass(Species)==i],bw=0.2),
col=c("#ff000040","#00ff0040","#0000ff40")[i])
dev.off()Run the code above in your browser using DataLab