Univarite
========================================================
Histogram, Stem-and-Leaf, Dot, Q-Q, Density plots
#Histogram
x = DataX$Sepal.Length # a continuous variable
by (mfrow = c (2,2))
hist(x, main='Histogram (Default)')
hist(x, breaks=20, main='More bins')
hist(x, breaks=20, freq=F, main='Frequency vs. Density')
hist(x, breaks=20, freq=F, col=5, main='Coloring')
#Density Plot
hist(x, breaks=20, freq=F,
main='Histogram with Kernel Density Plot') # using freq=FALSE
lines(density(x), col=2, lty=1, lwd=2) #add the density curve
Boxplot, Box-and-whisker
#Boxplot Plot
by (mfrow = c (2,2))
boxplot(DataX$Sepal.Length, main='Boxplot of Sepal.Length')
boxplot(DataX$Sepal.Width, main='Boxplot of Sepal.Width') # Outliers
boxplot(DataX[,1:4], col=c(2,3,4,5), main='Side-by-side Boxplot')
boxplot(Sepal.Width~Species, DataX, col=c(6,7,8), main="Boxplot with Grouping")
Bar, Pie, Polar, Waterfall charts
#Pie and Bar Charts
DataX$Flag = DataX$Sepal.Length>5 # Create a binary flag
by (mfrow = c (1,3))
pie(table(DataX$Species[DataX$Flag]), col=c(2,3,4))
barplot(table(DataX$Species[DataX$Flag]), col=c(5,6,7))
barplot(table(DataX$Species, DataX$Flag), col=c(5,6,7), beside=T)
Relationship between variables
x = DataX$Petal.Length; y = DataX$Petal.Width
plot(x, y, xlab="Petal.Length", ylab="Petal.Width")
abline(lm(y~x), col=1, lty=2)
title(main=paste("Correlation =", round(cor(x,y),4)))
Differentiating with colors
z = DataX$Species
plot(x, y, col=c(2,3,4)[z], pch=20, cex=2.0, xlab="Petal.Length", ylab="Petal.Width")
abline(lm(y~x), col=1, lty=2)
legend("topleft", levels(z), pch=20, col=c(2,3,4), cex=2.0)
Distribution
library(lattice)
library(gridExtra)
p1 = histogram(DataX$Sepal.Length)
p2 = bwplot(DataX$Sepal.Length)
grid.arrange(p1, p2, ncol=2)
#Histogram with Conditioning
histogram(data=DataX, ~Sepal.Length|Species, breaks=12, layout = c(3, 1))
#Density plot with Grouping
densityplot(data=DataX, ~Sepal.Length, groups=Species,
plot.points=F, auto.key=list(space="top", columns=3))
#Boxplot with Grouping
bwplot(data=DataX, Sepal.Width~Species)
Bivariate
XYplot, Line, Area, Scatter, Bubble charts
#Pairwise Scatter Plot
pairs(DataX[,1:4], main="Pairwise Scatter Plots (default)")
#Pairwise Scatter Plot (more sophisticated)
pairs(DataX[,1:4], panel = panel.smooth,
pch=21, bg = c(5,6,7)[unclass(DataX$Species)],
main="Pairwise Scatter Plot (sophisticated)")
Distribution
#Grouping
xyplot(data=DataX, Sepal.Length ~ Petal.Length, groups = Species,
type = c("p", "smooth", "g"),
auto.key = list(space="top", columns=3)) # grouping
#Conditioning
xyplot(data=DataX, Sepal.Length ~ Petal.Length|Species,
type=c("p", "smooth", "g"), layout=c(1,3)) # conditioning
Trivariate
3D Scatter, Contour, Level/Heatmap, Surface plots
#3D Plot
cloud(data=DataX, Sepal.Length ~ Sepal.Length * Petal.Width, groups = Species,
auto.key = list(space="top", columns=3), panel.aspect = 0.8)
#Heatmap
dist = as.matrix(dist(DataX[,3:4]))
levelplot(dist, colorkey = T, col.regions = terrain.colors,
scales = list(at=c(0,0),tck = c(0,0)),
xlab="",ylab="",main="Levelplot of Pairwise Distance Matrix")
LS0tCnRpdGxlOiAiR3JhcGhpY3MiCm91dHB1dDogaHRtbF9ub3RlYm9vawotLS0KI0Jhc2UgU3RhdGlzdGljYWwgR3JhcGhpY3MgIAoKI1VuaXZhcml0ZSAgIAoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gIAoKIyNIaXN0b2dyYW0sIFN0ZW0tYW5kLUxlYWYsIERvdCwgUS1RLCBEZW5zaXR5IHBsb3RzICAKYGBge3J9CiNIaXN0b2dyYW0KeCA9IERhdGFYJFNlcGFsLkxlbmd0aCAjIGEgY29udGludW91cyB2YXJpYWJsZQpieSAobWZyb3cgPSBjICgyLDIpKQpoaXN0KHgsIG1haW49J0hpc3RvZ3JhbSAoRGVmYXVsdCknKSAgIApoaXN0KHgsIGJyZWFrcz0yMCwgbWFpbj0nTW9yZSBiaW5zJykgIApoaXN0KHgsIGJyZWFrcz0yMCwgZnJlcT1GLCBtYWluPSdGcmVxdWVuY3kgdnMuIERlbnNpdHknKSAgCmhpc3QoeCwgYnJlYWtzPTIwLCBmcmVxPUYsIGNvbD01LCBtYWluPSdDb2xvcmluZycpIAoKI0RlbnNpdHkgUGxvdApoaXN0KHgsIGJyZWFrcz0yMCwgZnJlcT1GLCAgCiAgICAgbWFpbj0nSGlzdG9ncmFtIHdpdGggS2VybmVsIERlbnNpdHkgUGxvdCcpICAgIyB1c2luZyBmcmVxPUZBTFNFCmxpbmVzKGRlbnNpdHkoeCksIGNvbD0yLCBsdHk9MSwgbHdkPTIpICAjYWRkIHRoZSBkZW5zaXR5IGN1cnZlCmBgYAoKIyNCb3hwbG90LCBCb3gtYW5kLXdoaXNrZXIgIApgYGB7cn0KI0JveHBsb3QgUGxvdApieSAobWZyb3cgPSBjICgyLDIpKQpib3hwbG90KERhdGFYJFNlcGFsLkxlbmd0aCwgbWFpbj0nQm94cGxvdCBvZiBTZXBhbC5MZW5ndGgnKSAKYm94cGxvdChEYXRhWCRTZXBhbC5XaWR0aCwgbWFpbj0nQm94cGxvdCBvZiBTZXBhbC5XaWR0aCcpICAjIE91dGxpZXJzCmJveHBsb3QoRGF0YVhbLDE6NF0sIGNvbD1jKDIsMyw0LDUpLCBtYWluPSdTaWRlLWJ5LXNpZGUgQm94cGxvdCcpICAKYm94cGxvdChTZXBhbC5XaWR0aH5TcGVjaWVzLCBEYXRhWCwgY29sPWMoNiw3LDgpLCBtYWluPSJCb3hwbG90IHdpdGggR3JvdXBpbmciKSAKYGBgCgojI0JhciwgUGllLCBQb2xhciwgV2F0ZXJmYWxsIGNoYXJ0cyAgCmBgYHtyfQojUGllIGFuZCBCYXIgQ2hhcnRzCkRhdGFYJEZsYWcgPSBEYXRhWCRTZXBhbC5MZW5ndGg+NSAjIENyZWF0ZSBhIGJpbmFyeSBmbGFnCmJ5IChtZnJvdyA9IGMgKDEsMykpCnBpZSh0YWJsZShEYXRhWCRTcGVjaWVzW0RhdGFYJEZsYWddKSwgY29sPWMoMiwzLDQpKQpiYXJwbG90KHRhYmxlKERhdGFYJFNwZWNpZXNbRGF0YVgkRmxhZ10pLCBjb2w9Yyg1LDYsNykpCmJhcnBsb3QodGFibGUoRGF0YVgkU3BlY2llcywgRGF0YVgkRmxhZyksIGNvbD1jKDUsNiw3KSwgYmVzaWRlPVQpCmBgYAoKUmVsYXRpb25zaGlwIGJldHdlZW4gdmFyaWFibGVzICAKYGBge3J9CnggPSBEYXRhWCRQZXRhbC5MZW5ndGg7IHkgPSBEYXRhWCRQZXRhbC5XaWR0aApwbG90KHgsIHksIHhsYWI9IlBldGFsLkxlbmd0aCIsIHlsYWI9IlBldGFsLldpZHRoIikgCmFibGluZShsbSh5fngpLCBjb2w9MSwgbHR5PTIpCnRpdGxlKG1haW49cGFzdGUoIkNvcnJlbGF0aW9uID0iLCByb3VuZChjb3IoeCx5KSw0KSkpCmBgYAoKRGlmZmVyZW50aWF0aW5nIHdpdGggY29sb3JzICAKYGBge3J9CnogPSBEYXRhWCRTcGVjaWVzCnBsb3QoeCwgeSwgY29sPWMoMiwzLDQpW3pdLCBwY2g9MjAsIGNleD0yLjAsIHhsYWI9IlBldGFsLkxlbmd0aCIsIHlsYWI9IlBldGFsLldpZHRoIikgCmFibGluZShsbSh5fngpLCBjb2w9MSwgbHR5PTIpIApsZWdlbmQoInRvcGxlZnQiLCBsZXZlbHMoeiksIHBjaD0yMCwgY29sPWMoMiwzLDQpLCBjZXg9Mi4wKQpgYGAKCiMjRGlzdHJpYnV0aW9uICAKYGBge3J9CmxpYnJhcnkobGF0dGljZSkKbGlicmFyeShncmlkRXh0cmEpCnAxID0gaGlzdG9ncmFtKERhdGFYJFNlcGFsLkxlbmd0aCkKcDIgPSBid3Bsb3QoRGF0YVgkU2VwYWwuTGVuZ3RoKSAKZ3JpZC5hcnJhbmdlKHAxLCBwMiwgbmNvbD0yKQojSGlzdG9ncmFtIHdpdGggQ29uZGl0aW9uaW5nCmhpc3RvZ3JhbShkYXRhPURhdGFYLCB+U2VwYWwuTGVuZ3RofFNwZWNpZXMsIGJyZWFrcz0xMiwgbGF5b3V0ID0gYygzLCAxKSkKI0RlbnNpdHkgcGxvdCB3aXRoIEdyb3VwaW5nCmRlbnNpdHlwbG90KGRhdGE9RGF0YVgsIH5TZXBhbC5MZW5ndGgsIGdyb3Vwcz1TcGVjaWVzLCAgCiAgICAgICAgICAgIHBsb3QucG9pbnRzPUYsIGF1dG8ua2V5PWxpc3Qoc3BhY2U9InRvcCIsIGNvbHVtbnM9MykpCiNCb3hwbG90IHdpdGggR3JvdXBpbmcKYndwbG90KGRhdGE9RGF0YVgsIFNlcGFsLldpZHRoflNwZWNpZXMpIApgYGAKCiNCaXZhcmlhdGUgIAoKIyNYWXBsb3QsIExpbmUsIEFyZWEsIFNjYXR0ZXIsIEJ1YmJsZSBjaGFydHMgIApgYGB7cn0KI1BhaXJ3aXNlIFNjYXR0ZXIgUGxvdApwYWlycyhEYXRhWFssMTo0XSwgbWFpbj0iUGFpcndpc2UgU2NhdHRlciBQbG90cyAoZGVmYXVsdCkiKSAKI1BhaXJ3aXNlIFNjYXR0ZXIgUGxvdCAobW9yZSBzb3BoaXN0aWNhdGVkKQpwYWlycyhEYXRhWFssMTo0XSwgcGFuZWwgPSBwYW5lbC5zbW9vdGgsIAogICAgICBwY2g9MjEsIGJnID0gYyg1LDYsNylbdW5jbGFzcyhEYXRhWCRTcGVjaWVzKV0sIAogICAgICBtYWluPSJQYWlyd2lzZSBTY2F0dGVyIFBsb3QgKHNvcGhpc3RpY2F0ZWQpIikgCmBgYAoKIyNEaXN0cmlidXRpb24gIApgYGB7cn0KI0dyb3VwaW5nCnh5cGxvdChkYXRhPURhdGFYLCBTZXBhbC5MZW5ndGggfiBQZXRhbC5MZW5ndGgsIGdyb3VwcyA9IFNwZWNpZXMsICAKICAgICAgIHR5cGUgPSBjKCJwIiwgInNtb290aCIsICAiZyIpLCAgCiAgICAgICBhdXRvLmtleSA9IGxpc3Qoc3BhY2U9InRvcCIsIGNvbHVtbnM9MykpICMgZ3JvdXBpbmcKI0NvbmRpdGlvbmluZwp4eXBsb3QoZGF0YT1EYXRhWCwgU2VwYWwuTGVuZ3RoIH4gUGV0YWwuTGVuZ3RofFNwZWNpZXMsIAogICAgICAgdHlwZT1jKCJwIiwgInNtb290aCIsICAiZyIpLCBsYXlvdXQ9YygxLDMpKSAjIGNvbmRpdGlvbmluZwpgYGAKCiNUcml2YXJpYXRlICAKCiMjM0QgU2NhdHRlciwgQ29udG91ciwgTGV2ZWwvSGVhdG1hcCwgU3VyZmFjZSBwbG90cyAgCmBgYHtyfQojM0QgUGxvdApjbG91ZChkYXRhPURhdGFYLCBTZXBhbC5MZW5ndGggfiBTZXBhbC5MZW5ndGggKiBQZXRhbC5XaWR0aCwgZ3JvdXBzID0gU3BlY2llcywgCiAgICAgIGF1dG8ua2V5ID0gbGlzdChzcGFjZT0idG9wIiwgY29sdW1ucz0zKSwgcGFuZWwuYXNwZWN0ID0gMC44KQojSGVhdG1hcCAKZGlzdCA9IGFzLm1hdHJpeChkaXN0KERhdGFYWywzOjRdKSkKbGV2ZWxwbG90KGRpc3QsIGNvbG9ya2V5ID0gVCwgY29sLnJlZ2lvbnMgPSB0ZXJyYWluLmNvbG9ycywKICAgICAgICAgIHNjYWxlcyA9IGxpc3QoYXQ9YygwLDApLHRjayA9IGMoMCwwKSksIAogICAgICAgICAgeGxhYj0iIix5bGFiPSIiLG1haW49IkxldmVscGxvdCBvZiBQYWlyd2lzZSBEaXN0YW5jZSBNYXRyaXgiKQpgYGAKCg==