Base Plot
Overview
R offers a variety of functions that aid in visualizing data. The graphics package in R provides a set of functions for basic graphics (list of functions). To demonstrate the functionality of these graphics functions, I will utilize the built-in iris dataset in R.
head(iris)## # A tibble: 6 × 5
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## <dbl> <dbl> <dbl> <dbl> <fct>
## 1 5.1 3.5 1.4 0.2 setosa
## 2 4.9 3 1.4 0.2 setosa
## 3 4.7 3.2 1.3 0.2 setosa
## 4 4.6 3.1 1.5 0.2 setosa
## 5 5 3.6 1.4 0.2 setosa
## 6 5.4 3.9 1.7 0.4 setosa
Plot
When creating a plot, you typically need to specify the formula to define the relationship between variables. For instance, if you wish to visualize the association between x and y (with y on the vertical axis and x on the horizontal axis), the formula would be y ~ x (where the left side of the formula represents the vertical axis). In the iris dataset, you have access to the following columns: Sepal.Length, Sepal.Width, Petal.Length, Petal.Width, and Species. In the subsequent example, we will plot the relationship between Sepal.Length and Sepal.Width:
plot(Sepal.Length ~ Sepal.Width, data = iris)
The data = argument informs the function about the dataset from which the variables (Sepal.Length and Sepal.Width) should be extracted.
Symbol
pch argument. Choose from 1 to 25 (google r plot pch for details)
plot(Sepal.Length ~ Sepal.Width, data = iris,
pch = 19)
Symbol size
cex argument. cex = 1 is the default value. cex = 2 is as twice large as default value.
plot(Sepal.Length ~ Sepal.Width, data = iris,
pch = 19, cex = 2)
Symbol color (border)
col argument (quote "color name" when specifying). Google r color name for color options.
plot(Sepal.Length ~ Sepal.Width, data = iris,
pch = 21, cex = 2, col = "gray")
Symbol color (fill)
bg argument (quote "color name" when specifying). Available for a subset of symbol options (some symbols have pre-defined filled color).
plot(Sepal.Length ~ Sepal.Width, data = iris,
pch = 21, cex = 2, bg = "lightgray")
Label
ylab or xlab arguments. Provide "quoted text".
plot(Sepal.Length ~ Sepal.Width, data = iris,
pch = 21, cex = 2, bg = "lightgray",
xlab = "Sepal width (cm)", ylab = "Sepal length (cm)")
Axis
Delete axes with axes = F and re-draw with box() and axis() functions.
plot(Sepal.Length ~ Sepal.Width, data = iris,
pch = 21, cex = 2, bg = "lightgray",
xlab = "Sepal width (cm)", ylab = "Sepal length (cm)",
axes = F)
box(bty = "l") # L-shaped border lines
axis(1) # 1: draw x-axis
axis(2, las = 2) # 2: draw y-axis, las = 2: make axis lables horizontal
Boxplot
boxplot() is used when the x-axis is factor-type data (by default, plot() will produce a boxplot when x-axis is a factor variable). In the iris dataset, the column Species is a factor variable. Compare Sepal.Length among species using boxplot().
boxplot(Sepal.Length ~ Species, data = iris)
You can customize as in plot(), but slighlty different.
Border color
border argument.
boxplot(Sepal.Length ~ Species, data = iris,
col = "lightgray", border = "grey48")
Box width
boxwex argument.
boxplot(Sepal.Length ~ Species, data = iris,
col = "lightgray", border = "grey48",
boxwex = 0.4 )
Axis
Delete axes with axes = F and re-draw with box() and axis() functions.
boxplot(Sepal.Length ~ Species, data = iris,
col = "lightgray", border = "grey48",
boxwex = 0.4, ylab = "Sepal length (cm)",
axes = F)
box(bty = "l")
axis(1, at = c(1, 2, 3), labels = c("Setosa", "Versicolor", "Virginica") )
axis(2, las = 2)
