Cairo {Cairo} | R Documentation |
Create a new Cairo-based graphics device
Description
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.
Usage
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, 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)
Arguments
width |
width of the plot area (also see |
height |
height of the plot area (also see |
file |
name of the file to be created or connection to write
to. Only PDF, PS and PNG types support connections. For X11
type |
type |
output type. This version of Cario supports "png", "jpeg"
and "tiff" bitmaps (png/tiff with transparent background), "pdf"
PDF-file with embedded fonts, "svg" SVG-file, "ps" PostScript-file,
"x11" X11 interactive window and "win" Windows graphics.
A special type "raster" creates an image back-end that produces no
actual output file but can be used in conjunction with any of
|
pointsize |
initial text size (in points). |
canvas |
canvas color (must be opaque). The canvas is only used by devices that display graphics on a screen and the canvas is only visible only if bg is transparent. |
bg |
plot background color (can include alpha-component or be transparent alltogether). |
units |
units for of the |
dpi |
DPI used for the conversion of units to pixels. If set to
|
... |
additional backend specific parameters (e.g. The PDF back-end supports following additional arguments:
All parameters
listed below are defined by the other devices are are used by
the wrappers to make it easier replace other devices by
|
display |
X11 display, see |
gamma |
gamma correction |
xpos |
see |
ypos |
see |
filename |
same as |
res |
resolution in ppi, see |
quality |
quality of the jpeg, see |
onefile |
logical: if true (the default) allow multiple
figures in one file (see |
family |
font family, see |
title |
see |
fonts |
see |
paper |
see |
encoding |
see |
fg |
see |
pagecentre |
see |
record |
Windows-specific, ignored on unix |
rescale |
Windows-specific, ignored on unix |
xpinch |
Windows-specific, ignored on unix |
ypinch |
Windows-specific, ignored on unix |
buffered |
Windows-specific, ignored on unix |
restoreConsole |
Windows-specific, ignored on unix |
horizontal |
see |
print.it |
see |
command |
see |
colormodel |
see |
Value
The (invisible) return value is NULL if the device couldn't be created
or a Cairo
object if successful. The vaule of the object is the
device number.
Known issues
The X11 backend is quite slow. The reason is the cairographics implementation of the backend, so we can't do much about it. It should be possible to drop cairographics' Xlib backend entirely and use image backend copied into an X11 window instead. We may try that in future releases.
TrueType (and OpenType) fonts are supported when this package is compiled against a cairo graphics library configured with FreeType and Fontconfig support. Therefore make sure have a cairo graphics library with all bells and whistles to get a good result.
R math symbols are supported, but require a TrueType "Symbol" font accessible to Cairo under that name.
See Also
Examples
# 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()
## remove the example files if not in an interactive session
if (!interactive()) unlink(c("plot.png","plot.pdf"))