MicroSD
MicroSD

Reputation: 21

ggplot2 with mtcars: How does it know car class?

I'm a beginner with R going over the ggplot2 tutorial and something has caught my eye as being bizarre when using the mtcars dataset.

For example, consider the following:

>library(ggplot2)
>g<-ggplot(mpg, aes(class)) + geom_bar()
>g

I can't figure out why this works. This clearly makes a plot with the counts of each car class (2seater, compact, midsize, minivan, pickup, subcompact, suv).

My question is: How does R/ggplot know what classes these cars are in? There is no variable in the mtcars data.frame that describes this:

>mtcars$class
NULL

Is this something just built into the ggplot package?

Upvotes: 2

Views: 1306

Answers (1)

eipi10
eipi10

Reputation: 93871

You're using the mpg data frame in your ggplot code, not the mtcars data frame. Your code is:

ggplot(mpg, aes(class)) + geom_bar()

mpg is the data argument. But if you change to

ggplot(mtcars, aes(class)) + geom_bar() 

you'll get an error, because the mtcars data frame does not have a column called class.

The mpg data frame is built into the ggplot2 package. Run data(package="ggplot2") to see which data sets come with ggplot2. The mtcars data frame is included in base R. Run data() to see data sets available from all loaded packages.

Upvotes: 1

Related Questions