In my previous post, I showed how to use
cdata package along with
ggplot2‘s faceting facility to compactly plot two related graphs from the same data. This got me thinking: can I use
cdata to produce a
ggplot2 version of a scatterplot matrix, or pairs plot?
A pairs plot compactly plots every (numeric) variable in a dataset against every other one. In base plot, you would use the
pairs() function. Here is the base version of the pairs plot of the
pairs(iris[1:4], main = "Anderson's Iris Data -- 3 species", pch = 21, bg = c("#1b9e77", "#d95f02", "#7570b3")[unclass(iris$Species)])
There are other ways to do this, too:
# not run library(ggplot2) library(GGally) ggpairs(iris, columns=1:4, aes(color=Species)) + ggtitle("Anderson's Iris Data -- 3 species") library(lattice) splom(iris[1:4], groups=iris$Species, main="Anderson's Iris Data -- 3 species")
But I wanted to see if
cdata was up to the task. So here we go….