### Introduction to Lattice

```Introduction to
Lattice Graphics
Richard Pugh
4th December 2012
Agenda
•
•
•
•
•
•
•
Overview of Lattice Functions
Creating basic graphics
Panelled Graphics
Grouped Data
Multiple Variables
Writing Panel Functions
Summary
The Data We Will Use
• Something relevant and sector independent
• London Tube Performance Data from the TFL website
• Excess Travel Hours by Line
http://data.london.gov.uk/datastore/package/
tube-network-performance-data
http://en.wikipedia.org/wiki/London_Underground
Overview of Lattice Graphics
Overview of Lattice Graphics
• One of the graphic systems of
and “GGPlot”)
• An implementation of the S+
“Trellis” Graphics
• Written by Deepayan Sarkar,
Fred Hutchinson Cancer
Research Center
List of Lattice Graphic Functions
Function
xyplot
histogram
densityplot
barchart
bwplot
qq
dotplot
cloud
wireframe
splom
parallel
Description
Scatter plot
Univariate histogram
Univariate density line plot
Bar chart
Box and whisker plot
Normal QQ plot
Label dot plot
3D scatter plot
3D surface plot
Scatter matrix plot
Multivariate parallel plot
Graph Type
Bivariate
Univariate
Univariate
Univariate
Bivariate
Univariate
Bivariate
3D
3D
Data Frame
Data Frame
Key Function Arguments
Argument
x
data
subset
panel
groups
Type of graph
Univariate
Bivariate
3D
Data Frame
Description
Plot definition, typically as a formula
The data frame used for the graphic
Any subsets to be applied to the data
Function used to draw data in each “panel”
Grouping variable for the plot
Formula
~Y
Y~X
Z ~ X*Y
~ Data
Y axis
Y
Y
Y
Data
X axis
X
X
-
Z axis
Z
-
Creating Basic Graphics
Panelled Graphics
Specifying Panels
• We can use the vertical pipe symbol “|” in
order to specify “panels” to be plotted
• This allows us to create the graphics “by” one
or more variables
Panel Variables
• During the plot creation, lattice builds a plot
data frame containing the variables to plot
• By this time, any categorical “by” variables
need to be factors
• So, either change them to characters or
factors beforehand
Panel Ordering!
• If you have a factor variable, the ordering of the
panels is in “graph” and not “table” order (!!)
• We can resolve using as.table = TRUE
• Note that the converting of characters to factors
uses alphabetical ordering
Grouped Data
Grouped Data
• We can specify groupings within our data in
order to plot these groupings separately
• By default, lattice will vary styling of the
groups specified
• The key argument is the “groups” argument
Take care!
Controlling Styles
• Best done via the underlying lattice style
templates
• Use of par.settings argument which takes a
list of styles
• We usually use a basic template and change
elements of it
• The show.settings function lets you see the
Multiple Variables
Multiple Variables
• We can specify one or more X or Y axis
variable in our lattice formula
• This can overwrite the “groups” input
• The “outer” argument controls how the
multiple X/Y variables should be plotted
Writing Panel Functions
Panel Functions
• For each lattice graph, R performs the following
actions:
• Partitions the data
• Draws the graph “outline” (i.e. the “panels”)
• Passes the data for each panel into the “panel” function
• We can overwrite this panel function and supply
our own …
Panel Functions
• The default “panel” function for a lattice function is
“panel.NameOfFunction”
• Let’s look at panel.xyplot …
Arguments for styling
Jitter & other less used bits
Let’s write our own panel function …….
Now what?
• Now we can insert other functions into a panel function
which will then impact each individual plot panel
• We can call:
• Lattice “low level functions” (lpoints, ltext,
llines, lpolygon etc)
• Existing “panel.” functions that exist for this purpose
Summary
Summary
• This was just a quick overview of lattice graphics
• I hope it was useful