Lattice Package in R with Functions and Graphs

Lattice is a powerful and elegant data visualization package for R programming, with an emphasis on multivariate data. It is inspired by trellis graphics.  In this article of TechVidvan’s R tutorial series, we are going to learn about the lattice package in R. We will study the functions and commands in the lattice package. We shall also look at the graphical capabilities of the package. So, let’s go!

Lattice Package in R
Lattice Package in R

The lattice package is a graphics and data visualization package inspired by the trellis graphics package. The main focus of the package is multivariate data. It has a wide variety of functions that enable it to create basic plots of the base R package as well as enhance on them. Let us start looking at all the functions and graphs in the lattice package, one-by-one.

1. Scatter Plots in the Lattice Package

The xyplot() function can be used to create a scatter plot in R using the lattice package. The iris dataset is perfectly suited for this example.

library(lattice)
xyplot(Sepal.Length ~ Petal.Length,
       data = iris)

Output:

Scatter Plots in the Lattice Package

We can color the points of the scatter plot based on the categories.

xyplot(Sepal.Length ~ Petal.Length,
       data = iris,
       group = Species,
       auto.key = TRUE)

Output:

color the points of the scatter plot based on the categories

We can change the x and y labels and also add smoothing lines to the plot using the arguments in the xyplot() function.

xyplot(Sepal.Length ~ Petal.Length,
       data = iris,
       type = c("p", "g", "smooth"),
       xlab = "Miles/(US) gallons",
       ylab = "Weight (1000lbs)")

Output:

Lattice Package in R

We can also create plots in multiple panels based on groups.

xyplot(Sepal.Length ~ Petal.Length | Species,
       group = Species,
       data = iris,
       type = c("p", "smooth"),
       scales = "free")

Output:

create plots in multiple panels based on groups.

2. 3D scatter plots

Using the cloud() function, we can create a 3D scatter plot. We can use the iris dataset for this example.

cloud(Sepal.Length ~ Sepal.Length*Petal.Width,
      data = iris)

Output:

create a 3D scatter plot in R

We can use the group argument to color the point based on groups, similarly to the xyplot() function.

cloud(Sepal.Length ~ Sepal.Length*Petal.Width,
      data = iris,
      group = Species,
      auto.key = TRUE)

Output:

the group argument to color the point based on groups

3. Boxplots in Lattice Package in R

The lattice package provides a bwplot() function that can be used to create a box plot. We will be using the ToothGrowth data set for this example.

ToothGrowth$dose <- as.factor(ToothGrowth$dose)
bwplot(len ~ dose, data = ToothGrowth,
       xlab = "Dose",
       ylab = "Length")

Output:

create a box plot in R

Using the panel argument of bwplot() function, we can make a violin plot as well.

bwplot(len ~ dose, data = ToothGrowth,
           xlab = "Dose",
           ylab = "Length",
           panel = panel.violin)

Output:

the panel argument of bwplot() function

We can also create multiple plots based on the groups.

bwplot(len ~ supp|dose,
       data = ToothGrowth,
       layout = c(3,1),
       xlab = "Dose",
       ylab = "Length")

Output:

create multiple plots based on the groups

bwplot(len ~ supp|dose,
       data = ToothGrowth,
       layout = c(3,1),
       xlab = "Dose",
       ylab = "Length",
       panel = panel.violin)

Output:

using panel agreement in R

4. Dotplots in Lattice Package in R

The R dotplot() function  enables us to create dot plots in R. We will again use the ToothGrowth dataset for this example.

dotplot(len ~ dose,
        data = ToothGrowth,
        xlab = "Dose",
        ylab = "Length")

Output:

The dotplot() function in R

dotplot(len ~ supp|dose,
        data = ToothGrowth,
        layout = c(3,1),
        xlab = "Dose",
        ylab = "Length")

Output:

final output of the dotplot() function in R

5. Strip Plots in the Lattice Package

Strip plots can be created in R using the stripplot() function of the lattice package. We will be using the same ToothGrowth dataset.

stripplot(len ~ dose,
          data = ToothGrowth,
          jitter.data = TRUE,
          pch = 19,
          xlab = "Dose",
          ylab = "Length")

Output:

stripplot() function in R

stripplot(len ~ supp|dose,
          data = ToothGrowth,
          layout = c(3,1),
          xlab = "Dose",
          ylab = "Length",
          jitter.data = TRUE)

Output:

Lattice package in R

6. Density Plots in the Lattice Package

We can create density plots in R using the densityplot() function of the lattice package.

densityplot(~ len, data = ToothGrowth,
                  plot.points = FALSE)

Output:

the densityplot() function in R

densityplot(~ len, data = ToothGrowth,
            plot.points = FALSE,
            groups = dose,
            auto.key = TRUE)

Output:

Lattice package in R

7. Histograms in the Lattice Package

To create a histogram using the lattice package, we can use the histogram() function.

histogram(~ len, data = ToothGrowth, 
          breaks = 20)

Output:

Histograms in the Lattice Package

Summary

In this chapter of TechVidvan’s R tutorial series, we learned about the Lattice Package in R. We studied the functions of the R Lattice package that create the various graphs and plots. We looked at how to create graphs like scatter plots, 3D scatter plots, boxplots, dotplots, stripplots, density plots, and histograms.

Do share your feedback in the comment section.