This is a Notebook implmentation of Assignment 1.
# Necessary Libraries
library(ggplot2)
For these visualizations we use the the “Old Faithful” dataset.
View(faithful)
We create a vector, events, for the number of eruption events and using the waiting time from the dataset. Creating a Strip Plot for “Waiting Time to Next Eruption” and a Strip Plot for “Events vs Eruptions”.
events<-1:dim(faithful)[1]
ggplot(faithful, aes(x=events, y=waiting)) + geom_point(color = "red", fill = "green") + ggtitle("Waiting Time(min) to Next Eruption")

ggplot(faithful, aes(x=events, y=eruptions)) + geom_point(color = "blue", fill = "green") + ggtitle("Events vs. Eruptions")

Now we explore histograms of eruption waiting times. First, we see a classic frequency distribution histogram with blue fill. Second, we overlay the histogram with a density curve covering 99.7% of the full distribution.
ggplot(faithful, aes(x=waiting)) +
geom_histogram(binwidth = 3, color = 'white', fill = 'blue') +
ggtitle("Old FaithFul Histogram")

ggplot(faithful, aes(x = waiting, y=stat(density))) +
geom_histogram(binwidth = 3, color = 'white', fill = "blue") +
geom_density(fill="red", alpha = 0.5) +
ggtitle("Histogram with Density")

Another representation of density is the Violin Plot. The Violin Plot combines the 5 number summary representation of the Box Plot with a density representation of histograms.
ggplot(faithful, aes(y = waiting)) +
geom_violin(aes(x=0), trim=FALSE, color = "violet") +
ggtitle("Waiting Time(min) to Next Eruption")

Another very colorful visualization is the contour plot. Similar to a topographical map, the contour plot explores the topography of the density of a dataset.
v <- ggplot(faithfuld, aes(waiting, eruptions, z = density))
v + geom_raster(aes(fill = density)) +
geom_contour(binwidth = 0.001, colour = "white") +
ggtitle("Waiting Time(min) to Next Eruption")

Finally, we use the R native “anscombe” dataframe to explore model overlays and facet_wrap(). The latter creates a grid of plots, which is similar to the use of the “par(mfrow=c(n,n))” option by passing the ‘ncol=n’ option to facet_wrap().
First we extract data from the “anscombe” dataframe. Note the column headers of the anscombe dataset. We display the first four value sof each column.
data(anscombe)
head(anscombe,4)
Now to extract \(x_1\) to \(x_4\) for the horizontal axis and \(y_1\) to \(y_4\) for the vertical axis.
for (i in 1:4) {
anscomb_m <- rbind(anscomb_m,
data.frame(set=paste("Anscombe Set ",i),
x = anscombe[,i], y=anscombe[,i+4]))
}
Lastly, using the aformentioned facet_wrap() function, we plot the for sets of the \texttt{anscomb_m} dataframe in a \(2 \times 2\) grid,
ggplot(anscomb_m, aes(x,y)) +
geom_point(size = 3, color = "black", fill = "blue", shape = 21) +
geom_smooth(method = "lm", color = "red", fill = NA, fullrange = TRUE) +
facet_wrap(~set, ncol = 2)

LS0tDQp0aXRsZTogIkdHUGxvdDIgRXhhbXBsZXMgdXNpbmcgUiBuYXRpdmUgZGF0YXNldHMiDQphdXRob3I6ICJDaHJpc3RvcGhlciBNaWdsaW5vIg0Kb3V0cHV0OiBodG1sX25vdGVib29rDQotLS0NCg0KVGhpcyBpcyBhIE5vdGVib29rIGltcGxtZW50YXRpb24gb2YgQXNzaWdubWVudCAxLg0KDQpgYGB7cn0NCiMgTmVjZXNzYXJ5IExpYnJhcmllcw0KbGlicmFyeShnZ3Bsb3QyKQ0KYGBgDQoNCkZvciB0aGVzZSB2aXN1YWxpemF0aW9ucyB3ZSB1c2UgdGhlIHRoZSAiT2xkIEZhaXRoZnVsIiBkYXRhc2V0Lg0KYGBge3J9DQpWaWV3KGZhaXRoZnVsKQ0KYGBgDQoNCldlIGNyZWF0ZSBhIHZlY3RvciwgZXZlbnRzLCBmb3IgdGhlIG51bWJlciBvZiBlcnVwdGlvbiBldmVudHMgYW5kIHVzaW5nIHRoZSB3YWl0aW5nIHRpbWUgZnJvbSB0aGUgZGF0YXNldC4gQ3JlYXRpbmcgYSBTdHJpcCBQbG90IGZvciAgIldhaXRpbmcgVGltZSB0byBOZXh0IEVydXB0aW9uIiBhbmQgYSBTdHJpcCBQbG90IGZvciAiRXZlbnRzIHZzIEVydXB0aW9ucyIuDQpgYGB7ciBwYWdlZC5wcmludD1GQUxTRX0NCmV2ZW50czwtMTpkaW0oZmFpdGhmdWwpWzFdDQpnZ3Bsb3QoZmFpdGhmdWwsIGFlcyh4PWV2ZW50cywgeT13YWl0aW5nKSkgKyBnZW9tX3BvaW50KGNvbG9yID0gInJlZCIsIGZpbGwgPSAiZ3JlZW4iKSArIGdndGl0bGUoIldhaXRpbmcgVGltZShtaW4pIHRvIE5leHQgRXJ1cHRpb24iKQ0KDQpnZ3Bsb3QoZmFpdGhmdWwsIGFlcyh4PWV2ZW50cywgeT1lcnVwdGlvbnMpKSArIGdlb21fcG9pbnQoY29sb3IgPSAiYmx1ZSIsIGZpbGwgPSAiZ3JlZW4iKSArIGdndGl0bGUoIkV2ZW50cyB2cy4gRXJ1cHRpb25zIikNCg0KYGBgDQoNCk5vdyB3ZSBleHBsb3JlIGhpc3RvZ3JhbXMgb2YgZXJ1cHRpb24gd2FpdGluZyB0aW1lcy4gRmlyc3QsIHdlIHNlZSBhIGNsYXNzaWMgZnJlcXVlbmN5IGRpc3RyaWJ1dGlvbiBoaXN0b2dyYW0gd2l0aCBibHVlIGZpbGwuIFNlY29uZCwgd2Ugb3ZlcmxheSB0aGUgaGlzdG9ncmFtIHdpdGggYSBkZW5zaXR5IGN1cnZlIGNvdmVyaW5nIDk5LjclIG9mIHRoZSBmdWxsIGRpc3RyaWJ1dGlvbi4NCg0KYGBge3IgcGFnZWQucHJpbnQ9VFJVRX0NCmdncGxvdChmYWl0aGZ1bCwgYWVzKHg9d2FpdGluZykpICsgDQogIGdlb21faGlzdG9ncmFtKGJpbndpZHRoID0gMywgY29sb3IgPSAnd2hpdGUnLCBmaWxsID0gJ2JsdWUnKSArIA0KICBnZ3RpdGxlKCJPbGQgRmFpdGhGdWwgSGlzdG9ncmFtIikNCiAgDQpnZ3Bsb3QoZmFpdGhmdWwsIGFlcyh4ID0gd2FpdGluZywgeT1zdGF0KGRlbnNpdHkpKSkgKw0KICBnZW9tX2hpc3RvZ3JhbShiaW53aWR0aCA9IDMsIGNvbG9yID0gJ3doaXRlJywgZmlsbCA9ICJibHVlIikgKyANCiAgZ2VvbV9kZW5zaXR5KGZpbGw9InJlZCIsIGFscGhhID0gMC41KSArIA0KICBnZ3RpdGxlKCJIaXN0b2dyYW0gd2l0aCBEZW5zaXR5IikNCg0KYGBgDQoNCkFub3RoZXIgcmVwcmVzZW50YXRpb24gb2YgZGVuc2l0eSBpcyB0aGUgVmlvbGluIFBsb3QuIFRoZSBWaW9saW4gUGxvdCBjb21iaW5lcyB0aGUgNSBudW1iZXIgc3VtbWFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgQm94IFBsb3Qgd2l0aCBhIGRlbnNpdHkgcmVwcmVzZW50YXRpb24gb2YgaGlzdG9ncmFtcy4NCg0KYGBge3J9DQpnZ3Bsb3QoZmFpdGhmdWwsIGFlcyh5ID0gd2FpdGluZykpICsgDQogIGdlb21fdmlvbGluKGFlcyh4PTApLCB0cmltPUZBTFNFLCBjb2xvciA9ICJ2aW9sZXQiKSArIA0KICBnZ3RpdGxlKCJXYWl0aW5nIFRpbWUobWluKSB0byBOZXh0IEVydXB0aW9uIikNCg0KYGBgDQoNCkFub3RoZXIgdmVyeSBjb2xvcmZ1bCB2aXN1YWxpemF0aW9uIGlzIHRoZSBjb250b3VyIHBsb3QuIFNpbWlsYXIgdG8gYSB0b3BvZ3JhcGhpY2FsIG1hcCwgdGhlIGNvbnRvdXIgcGxvdCBleHBsb3JlcyB0aGUgdG9wb2dyYXBoeSBvZiB0aGUgZGVuc2l0eSBvZiBhIGRhdGFzZXQuDQoNCmBgYHtyfQ0KdiA8LSBnZ3Bsb3QoZmFpdGhmdWxkLCBhZXMod2FpdGluZywgZXJ1cHRpb25zLCB6ID0gZGVuc2l0eSkpDQp2ICsgZ2VvbV9yYXN0ZXIoYWVzKGZpbGwgPSBkZW5zaXR5KSkgKw0KICBnZW9tX2NvbnRvdXIoYmlud2lkdGggPSAwLjAwMSwgY29sb3VyID0gIndoaXRlIikgKyANCiAgZ2d0aXRsZSgiV2FpdGluZyBUaW1lKG1pbikgdG8gTmV4dCBFcnVwdGlvbiIpDQpgYGANCg0KDQpGaW5hbGx5LCB3ZSB1c2UgdGhlIFIgbmF0aXZlICJhbnNjb21iZSIgZGF0YWZyYW1lIHRvIGV4cGxvcmUgbW9kZWwgb3ZlcmxheXMgYW5kIGZhY2V0X3dyYXAoKS4gVGhlIGxhdHRlciBjcmVhdGVzIGEgZ3JpZCBvZiBwbG90cywgd2hpY2ggaXMgc2ltaWxhciB0byB0aGUgdXNlIG9mIHRoZSAicGFyKG1mcm93PWMobixuKSkiIG9wdGlvbiBieSBwYXNzaW5nIHRoZSAnbmNvbD1uJyBvcHRpb24gdG8gZmFjZXRfd3JhcCgpLg0KDQpGaXJzdCB3ZSBleHRyYWN0IGRhdGEgZnJvbSB0aGUgImFuc2NvbWJlIiBkYXRhZnJhbWUuIE5vdGUgdGhlIGNvbHVtbiBoZWFkZXJzIG9mIHRoZSBhbnNjb21iZSBkYXRhc2V0LiBXZSBkaXNwbGF5IHRoZSBmaXJzdCBmb3VyIHZhbHVlIHNvZiBlYWNoIGNvbHVtbi4NCg0KYGBge3J9DQpkYXRhKGFuc2NvbWJlKQ0KaGVhZChhbnNjb21iZSw0KQ0KYGBgDQoNCk5vdyB0byBleHRyYWN0ICR4XzEkIHRvICR4XzQkIGZvciB0aGUgaG9yaXpvbnRhbCBheGlzIGFuZCAkeV8xJCB0byAkeV80JCBmb3IgdGhlIHZlcnRpY2FsIGF4aXMuDQoNCmBgYHtyfQ0KZm9yIChpIGluIDE6NCkgew0KICBhbnNjb21iX20gPC0gcmJpbmQoYW5zY29tYl9tLA0KICAgICAgICAgICAgICAgICAgICAgZGF0YS5mcmFtZShzZXQ9cGFzdGUoIkFuc2NvbWJlIFNldCAiLGkpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4ID0gYW5zY29tYmVbLGldLCB5PWFuc2NvbWJlWyxpKzRdKSkNCn0NCmBgYA0KDQpMYXN0bHksIHVzaW5nIHRoZSBhZm9ybWVudGlvbmVkIGZhY2V0X3dyYXAoKSBmdW5jdGlvbiwgd2UgcGxvdCB0aGUgZm9yIHNldHMgb2YgdGhlIFx0ZXh0dHR7YW5zY29tYl9tfSBkYXRhZnJhbWUgaW4gYSAkMiBcdGltZXMgMiQgZ3JpZCwNCg0KYGBge3J9DQpnZ3Bsb3QoYW5zY29tYl9tLCBhZXMoeCx5KSkgKyANCiAgZ2VvbV9wb2ludChzaXplID0gMywgY29sb3IgPSAiYmxhY2siLCBmaWxsID0gImJsdWUiLCBzaGFwZSA9IDIxKSArIA0KICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iLCBjb2xvciA9ICJyZWQiLCBmaWxsID0gTkEsIGZ1bGxyYW5nZSA9IFRSVUUpICsgDQogIGZhY2V0X3dyYXAofnNldCwgbmNvbCA9IDIpDQpgYGANCg0KDQo=