Paul Murrell's Home Page
Department
Research

The home page for R: A language
and environment for computing and graphics

A technical report
Constructive Solid Geometry and Function Representation in R
(the 'hyperfun' package).

A technical report
Offsetting Lines and Polygons in 'grid' (new features in 'gridGeometry')

The slides from a talk titled
Constructive Solid Geometry:
The 'hyperfun' Package
given at NZSA 2022 Unconference, November 22 2022.

The slides from a talk titled
Enriching the Vocabulary
of R Graphics
given at useR! 2022 (virtual), June 23 2022
(plus the 'shiny' dynamic document that draws the tooltip on mouse hover).

An R Blog post
Vectorised Patterns in R Graphics

A technical report
Constructive Geometry for Complex Grobs

A technical report
Vectorised Pattern Fills in R Graphics

An R Blog post
Updating Graphics Devices for R 4.2.0

An R Blog post
Groups and Paths and Masks in R Graphics

A technical report
Luminance Masks in R Graphics.

The slides from a talk titled
'gggrid' it's gggreat!
Accessing 'grid' from 'ggplot2'
given to the Department of Statistics at The University of Auckland (Nov 2021),
plus speaker notes.

A technical report
The Path to Path Enlightenment:
Stroking and Filling Paths in R Graphics.

A technical report
Becoming an R Graphics Groupie:
Groups, Compositing Operators, and Affine Transformations in R Graphics.

The slides from a talk titled
Expanding the Vocabulary of R Graphics,
given at useR!2021 (online), plus speaker notes.

The slides from a talk titled
Going Beyond Statistical Plots in R Graphics,
given at ANZSC 2021 (online), plus speaker notes, plus R code for
the main image.

A technical report
Accessing 'grid' from 'ggplot2' about the 'gggrid' package.

A technical report
Letting Go of Type 1 Fonts.

A technical report
Adding TikZ support to 'dvir'.

The slides from a talk titled
Integrating R Graphics and TikZ Graphics:
The 'dvir' Package,
given at NZSA 2020 (Auckland),
plus a video recording
of the talk.

An R Blog post
New Features in the R Graphics Engine.

A technical report
Catching up with R Graphics: Gradients, Patterns, Clipping Paths, and Masks.

An R Blog post
Improvements to Clipping in the R Graphics Engine.

A technical report
Improved Clipping in the R Graphics Engine.

An R Blog post
Changes to Symbol Fonts for Cairo Graphics Devices.

A technical report
The Agony and the Ecstacy: Adding LuaTeX support to 'dvir'.

An R Blog post
Changes to 'grid' units
with Thomas Lin Pedersen.

A technical report
Visual Testing for Graphics in R (introducing the 'gdiff' package).

An R Blog post
A New palette() for R
with Achim Zeileis, Martin Maechler, and Deepayan Sarkar.

A technical report
SVG In, SVG Out that talks about
an update to 'grImport2' and using 'grImport2' combined with 'gridSVG' to
import and export complex SVG images with R.

An R Blog post
HCLBased Color Palettes in grDevices
with Achim Zeileis.

A technical report
A Geometry Engine Interface for 'grid'
(copy deposited on Figshare
http://dx.doi.org/10.17608/k6.auckland.7796831)

A technical report
Rendering HTML Content in R Graphics
(copy deposited on Figshare
https://doi.org/10.17608/k6.auckland.7471526)

The web pages for my book
"R Graphics, Third Edition"
(2018, Chapman Hall/CRC).

A technical report
MetaPost Three Ways
(copy deposited on Figshare
https://doi.org/10.17608/k6.auckland.7409639)

A technical report
VariableWidth Bezier Splines in R
(copy deposited on Figshare
https://doi.org/10.17608/k6.auckland.7290080)

A technical report
Building an mplib Shared Library
(copy deposited on Figshare
https://doi.org/10.17608/k6.auckland.7163429)

A technical report
Importing GeneralPurpose Graphics in R
(copy deposited on Figshare
https://doi.org/10.17608/k6.auckland.7108736)

A technical report
Revisiting Mathematical Equations in R:
The 'dvir' package
(copy deposited on Figshare
https://doi.org/10.17608/k6.auckland.7033448)

The slides from a talk titled
Making ggplot2 Accessible,
given at JSM 2018 (Vancouver)
(with accompanying resources).
This talks describes the VI.ggplot2() method in the 'BrailleR' package.

A technical report
Echoes of the Future
(new echoGrob() function in 'gridGraphics';
copy deposited on Figshare
https://doi.org/10.17608/k6.auckland.6843881)

The slides from a talk titled
The Minard Paradox,
given at useR! 2018 (Brisbane)
(with accompanying resources).
This talks describes the 'vwline' package.
A video recording
of the talk is on You Tube.

A technical report
Rasterizing Chromatograms
(an application of the 'rasterize' package;
copy deposited on Figshare
https://doi.org/10.17608/k6.auckland.6504368)

A technical report
Selective Raster Graphics (the 'rasterize' package;
copy deposited on Figshare
https://doi.org/10.17608/k6.auckland.6349496)

A technical report
Extreme Makeover: R Graphics Edition
(copy deposited on Figshare
https://doi.org/10.17608/k6.auckland.6199436)

The slides from a talk titled
Making Colour Accessible,
given as part of the Ihaka Lectures series (Auckland, 2018),
plus speaker notes
and a video recording.

A technical report
Putting the Macron in Māori: Accented text in R Graphics
(copy deposited on Figshare
https://doi.org/10.17608/k6.auckland.5936527)

A technical report
An ISCCNBS Colour List for 'roloc'
(copy deposited on Figshare
https://doi.org/10.17608/k6.auckland.5866902)

A technical report
Generating Colour Names: The 'roloc' Package for R
(copy deposited on Figshare
https://doi.org/10.17608/k6.auckland.5821107)

The slides from a talk titled
gridSVG: Then and Now,
given at the joint IASC/ARS, NZSA, ORSNZ 2017 conference (Auckland).

Resources for a short course
Getting to Know grid Graphics
(given at the joint IASC/ARS, NZSA, ORSNZ 2017 conference, Auckland, December 2017).

A technical report
Speeding up gridSVG
(copy deposited on Figshare
https://doi.org/10.17608/k6.auckland.5549353)

A technical report
Offset Curves for VariableWidth Xsplines
(copy deposited on Figshare
https://doi.org/10.17608/k6.auckland.5110030)

A technical report
VariableWidth Line Ends and Line Joins
(copy deposited on Figshare
https://doi.org/10.17608/k6.auckland.5084701)

A technical report
Variablewidth lines in R
(copy deposited on Figshare
https://doi.org/10.17608/k6.auckland.5023580.v1)

A technical report
Automating R Demonstration Videos
(copy deposited on Figshare
https://dx.doi.org/10.17608/k6.auckland.4292831.v1)

The slides from a talk titled
The Web Browser as an R Graphics Device,
given at NZSA 2016 (AUT)
(with accompanying resources).

The slides from a talk titled
Publish for Pleasure:
Embracing Modern Tools for Research Publications,
given at The University of Auckland, November 2016
(with accompanying resources).

A technical report
'DOM' Version 0.4
(copy deposited on Figshare
https://dx.doi.org/10.17608/k6.auckland.4219599.v1)

A technical report
'DOM' Version 0.3
(copy deposited on Figshare
https://dx.doi.org/10.17608/k6.auckland.4046688.v1)

A technical report
'DOM' Version 0.2
(copy deposited on Figshare
https://dx.doi.org/10.17608/k6.auckland.3842793.v1 and
ResearchSpace)

A technical report
The Butterfly Affectation
(a case study using grImport, grImport2, and gridSVG).

A technical report
A transformable markup document format
together with Ashley Noel Hinton.

A technical report
An Introduction to the 'DOM' Package.

A technical report
OpenAPI version 0.6
together with Ashley Noel Hinton.

A technical report
OpenAPI version 0.5
together with Ashley Noel Hinton.

A technical report
An OpenAPI Pipeline for NZ Crime Data.

A technical report
An Improved Pipeline for CPI Data.

A technical report
An OpenAPI Pipeline for CPI Data.

A technical report
Importing the New R Logo.

A technical report
Debugging Display List Internals.

A technical report
OpenAPI version 0.3
together with Ashley Noel Hinton.

A technical report
Recording and Replaying the Graphics Engine Display List
(with accompanying resources).

A technical report
A 'safemode' Package for R
(with accompanying resources).

A technical report
Generating SVG for Web Pages with the gridSVG Package.

The slides from a talk titled
The gridGraphics Package
(given at useR! 2015 in Aalborg, July 2015).

Resources for a short course
Getting to Know grid Graphics
(given at useR! 2015 in Aalborg, July 2015).

A poster titled
The conduit Package,
plus a handout
(presented at useR! 2015 in Aalborg, July 2015).

A technical report
Introducing OpenAPI
(an overview of the OpenAPI Project)
together with Ashley Noel Hinton.

A draft article
"The gridGraphics Package"
(introductory overview of the gridGraphics package),
with accompanying resources.

The slides from a talk titled
The openapi Project
(an introduction to the goals and ideas for the openapi project,
plus a look at some prototype software)
together with Ashley Noel Hinton
(with accompanying resources).
This talk was a Department of Statistics Seminar 18 Sep, 2014 and
was also given at Statistics New Zealand on 16 Oct, 2014.

A technical report on
Invertible Reproducible Documents
together with Eric Lim and Finlay Thompson.

The slides from a talk titled
grid Graphics from Top to Bottom
(a meander through some of the basics of grid, plus dips into some more
advanced uses of grid, gridSVG, and gridGraphviz)
given at the Auckland R Users Group meetup on 2 May, 2014.

The slides from a talk titled
A New Zealand Price Kaleidoscope
(a demonstration of a
homegrown CPI visualisation tool, but the real messages were: (i)
data users could make data
reuses reusable [e.g., by open source'ing their code] and (ii) data
providers could also consider releasing [some of] their dataproducing
code [e.g., CPI calculations in code form])
given at the Official Statistics User Forum 2014 conference at Te Papa,
Wellington.

A technical report on
Improving the 'gridGraphviz' package in R
together with Ashley Noel Hinton.

A draft article
"Enhanced Vector Image Import: The grConvert and grImport2 packages"
(introductory overview of the grImport2 package
(and the grConvert package); submitted to The R Journal),
with accompanying resources
togethe with Simon Potter.

The slides from a talk titled
Reusable Graphics
(how to make reusable graphics and why you might want to)
given at the NZSA+ORSNZ 2013 conference at the University
of Waikato
(with accompanying resources).

A draft article
"The gridSVG Package"
(introductory overview of the gridSVG package;
published in The R Journal),
with accompanying resources.

A technical report on
Improved Importing of Vector Graphics in R
(report on Simon Potter's Google Summer of Code project to improve the grImport
package, which ended up producing two new packages: grConvert and grImport2)
together with Simon Potter.

The slides from a talk titled
Seeing Through grid Graphics
(a retrospective attempt to identify important ideas from the design
of the 'grid' graphics package)
given at JSM 2013 in Montreal
(resources to follow).

The slides from a talk titled
R Graphics for the Web
(in praise of SVG over PNG and gridsvg() over svg(),
with and lots of demonstrations of what the 'gridSVG' package
can do)
given at the University of Western Ontario (August 2013)
(resources to follow).

A technical report on
Advanced SVG Graphics in R
(accessing SVG features like gradient fills, masks, and clipping paths from R)
together with Simon Potter.

A technical report on
Generating Structured and Labelled SVG
(why structure and labelling is important in SVG code and how to achieve it)
together with Simon Potter.

A technical report on
Generating unique names in gridSVG
(how grid grob names get transformed to SVG ids by gridSVG)
together with Simon Potter.

A technical report on
PostProcessing grid Graphics
(creating an interactive ggplot2 plot for the web).

A draft Comment
on Gelman and Unwin's
discussion about statistical graphics versus information visualization
(to appear in the
Journal
of Computational and Graphical Statistics).

A technical report on
Generating Animation Sequence Descriptions
("storyboarding" animation sequences)
together with Simon Potter.

A technical report on
Writing grid Extensions
(a new approach to developing custom grid grobs); published in
the R Journal.

A technical report on
A Structured Approach for Generating SVG
(gridSVG now uses the XML package to generate SVG)
together with Simon Potter.

A technical report on
Working with the gridSVG Coordinate System
(gridSVG now exports coordinate system information to SVG/javascript)
together with Simon Potter.

A technical report on
Voronoi Treemaps in R (includes link to code).

A draft article
"It's Not What You Draw, It's What You Not Draw:
Drawing Paths With Holes in R Graphics"
(published in The R Journal),
with accompanying resources.

A draft article
"Viewing Data: The rdataviewer package",
(with accompanying resources).

A table of R graphics par()
memnonics.

A draft article
"What's in a Name?: The Importance of Naming grid Grobs"
(published in The R Journal).

A draft article
"Debugging grid Graphics"
(published in The R Journal).

A draft article
"Dynamic and Interactive R Graphics for the Web:
the gridSVG package", joint with Simon Potter
(with accompanying resources).

The slides from a talk titled
R Graphics: What's in it for You?
(a highlevel summary of the features of R graphics that allow you to
customise, extend, and program R graphics [and why that is such a
useful thing])
given at CSIRO R User Group Conference (October 2011),
plus a page of resources.

The slides from a talk titled
What's in a name?
(a naming scheme for 'lattice' and how that can be used to
do finetuned customisations; plus a couple more gridSVG demos)
given at the NZSA 2011 conference (August 2011),
plus a page of resources.

The slides from a talk on
Vector Image Processing
(importing a picture into R and exporting an interactive SVG version)
given at the UseR! 2011 conference (August 2011),
plus a page of resources.

The resources from a short course
Introduction to Grid Graphics
given at the UseR! 2011 conference (August 2011).

The slides from a talk on
Is image() Everything?
(the recentlyadded raster image support in the R graphics engine)
given at the Bay Area UseR Group (July 2011),
plus a page of resources.

The slides from a talk on
Dynamic and Interactive R Graphics for the Web
(the gridSVG package)
given at Genentech (July 2011),
plus a page of resources.

The slides from a talk on
Gore: What is it Good For?
(an argument for the usefulness of knowledge of and access to
lowlevel gory details of graphics systems)
given at Berkeley (July 2011),
plus a page of resources.

The web pages for my book
"R Graphics, Second Edition"
(2011, Chapman Hall/CRC).

Some notes on using
special glyphs within text output on an R graphics device.

The slides from a talk on
How to be a DRY lecturer
given at ICOTS 8, Ljubljana, Slovenia (July 2010).

The slides from a talk on
Exploring Student Histories
(plus a
supporting data set
and
R code)
given at The University of Auckland
(August 2009).

The slides from a talk on
Viewing R Objects
(the 'rdataviewer' package) given at The University of Auckland
(July 2009).

The web pages for my book
"Introduction to Data Technologies".

A draft article
"Quality Control for Statistical Graphics:
the graphicsQC package for R", joint with Stephen Gardiner
(published in JSS).

A draft article "Importing Vector Graphics:
the grImport package for R"
(published in JSS),
plus a tar ball of
supporting files,
plus what some might deem a
frivolous application
(with the assistance of the 'animation' package).

The slides from a talk on
Automating Marking of R Code
(the 'compare' package) given at The University of Auckland
(October 2008). Also see the corresponding article in
R News
volume 8(2).

A draft article "Drawing Diagrams with R"
(published in The R Journal), plus a small R package
gridDiagram
(Windows binary) in
support of the article.

The slides from a talk on
Reusable Documents
given at NZSA2008 (University of Waikato, September 2008)
[plus a longer version that there
wasn't time for].

The
Handbook of Computational Statistics (Volume III)
Data Visualization.

The slides from a talk on
Why Details Matter in Statistical Graphics
given at the Vienna University of Technology (Nov 2007).

The slides from a talk on
Graphical Data and Data Graphics
given at the University of Economics and Business Administration
in Vienna (Oct 2007). Same first half as the Cambridge talk, but the second
half has a much better example of extracting data from
survival curves.

The slides from a talk on
Graphical Data and Data Graphics
given at the MRC BSU in Cambridge (July 2007; includes demonstration of
grImport being used to extract data from a plot).

The slides from a talk on
Display Lists in R
(plus R code for
the examples and one extended example)
given at DSC 2007 in Auckland.

The slides from a talk on
Importing Graphics for Statistical Plots
given at JSM 2006 in Seattle (more on grImport package).
WARNING: over 6MB download.

The cmsyasm font for producing
mathematical formulas in R (in PDF or PostScript output)
using LaTeX math symbols.

The slides from a talk on
fonts in plots
at ASC/NZSA 2006 in Auckland (plus
source files).

The slides from a keynote at
useR! 2006
"Can R Draw Graphs?"
(includes mention of grImport package). WARNING: over 6MB download.

The slides from a
talk on writing graphics functions using grid
given at DSC 2005 (Seattle).

The web pages for my book
"R Graphics"
(2005, Chapman Hall/CRC).

The slides from a keynote at
useR! 2004;
"grid Graphics and Programming".

The slides from talks at a workshop in Tokyo (December 2003):
recent developments in R,
R grid graphics (slight modification
of the talk given in Vancouver and Toronto), and
current and future developments in R graphics.

The slides from a talk on grid given at
UBC (Vancouver) and York University (Toronto) 2003.

The (HTML) slides from a talk on Web Delivery
of R Graphics at JSM 2003.
This talk includes material on the
gridSVG package.
The SVG content within the slides has only been
verified using the Adobe SVG Viewer 3.0 under Windows and Internet Explorer.

The slides from a course on R Graphics at
DSC 2003 (and a handout).

The slides from a course on S Graphics at Auckland
Feb 2003 (and a handout).

The slides from a talk on quality assurance for
graphics at DSC 2003.

The slides from a talk on colour at JSM 2002.

The slides from a talk on grid at DSC 2001.
Teaching