


ggplot2 will automatically assign a unique level of the aesthetic (here a unique color) to each unique value of the variable, a process known as scaling. To map an aesthetic to a variable, associate the name of the aesthetic to the name of the variable inside aes(). (If you prefer British English, like Hadley, you can use colour instead of color.) Here we change the levels of a point’s size, shape, and color to make the point small, triangular, or blue: Since we already use the word “value” to describe data, let’s use the word “level” to describe aesthetic properties. You can display a point (like the one below) in different ways by changing the values of its aesthetic properties. Aesthetics include things like the size, the shape, or the color of your points. An aesthetic is a visual property of the objects in your plot. You can add a third variable, like class, to a two dimensional scatterplot by mapping it to an aesthetic.

If the outlying points are hybrids, they should be classified as compact cars or, perhaps, subcompact cars (keep in mind that this data was collected before hybrid trucks and SUVs became popular). The class variable of the mpg dataset classifies cars into groups such as compact, midsize, and SUV. One way to test this hypothesis is to look at the class value for each car. Let’s hypothesize that the cars are hybrids. ggplot2 looks for the mapped variables in the data argument, in this case, mpg. The mapping argument is always paired with aes(), and the x and y arguments of aes() specify which variables to map to the x and y axes. This defines how variables in your dataset are mapped to visual properties. You’ll learn a whole bunch of them throughout this chapter.Įach geom function in ggplot2 takes a mapping argument. ggplot2 comes with many geom functions that each add a different type of layer to a plot. The function geom_point() adds a layer of points to your plot, which creates a scatterplot. You complete your graph by adding one or more layers to ggplot(). So ggplot(data = mpg) creates an empty graph, but it’s not very interesting so I’m not going to show it here. The first argument of ggplot() is the dataset to use in the graph. ggplot() creates a coordinate system that you can add layers to. With ggplot2, you begin a plot with the function ggplot(). Does this confirm or refute your hypothesis about fuel efficiency and engine size? In other words, cars with big engines use more fuel. The plot shows a negative relationship between engine size ( displ) and fuel efficiency ( hwy).
