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
X11
X11
X11
file
in Cairo
png
, will
override dpi
in Cairo
if set to anything other
than NA
or NULL
. Note that cairographics does not
sjpeg
pdf
). false is currently
not supported by vector devicespdf
pdf
(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