library(grid)
library(gridSVG)
pdf(file = NULL)
# Create the definition of an opacity mask, in this case
# it will just be a circle with a gradient fill.
rg <- radialGradient(col = c("white", "black"))
m <- mask(gradientFillGrob(circleGrob(), gradient = rg))
# Register the opacity mask so that we can refer to it and apply it.
registerMask("circleMask", m)
# Creating a simple plot that will be masked to the circle
sp <- gTree(name = "simplePlot",
children = gList(xaxisGrob(), yaxisGrob(),
rectGrob(gp = gpar(fill = "grey"))),
vp = plotViewport())
grid.draw(sp)
# Now lets mask it
grid.mask("simplePlot", label = "circleMask")
# Alternatively we could also do this which avoids the need to call
# 'registerMask' explicitly
# grid.mask("simplePlot", m)
grid.export("mask-simpleplot.svg")
dev.off()
# Now lets recreate the previous example using 'pushMask'
pdf(file = NULL)
# Clear previous mask reference
gridSVG.newpage()
# Create the definition of an opacity mask, in this case
# it will just be a circle with a gradient fill.
rg <- radialGradient(col = c("white", "black"))
m <- mask(gradientFillGrob(circleGrob(), gradient = rg))
# Create a new masking context for this viewport
pushMask(m)
# Creating a simple plot that will be masked to our current masking context
sp <- gTree(name = "simplePlot",
children = gList(xaxisGrob(), yaxisGrob(),
rectGrob(gp = gpar(fill = "grey"))),
vp = plotViewport())
grid.draw(sp)
# End the masking context
popMask()
grid.export("pushmask-simpleplot.svg")
dev.off()
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.