Cover by Joseph Adler

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

O'Reilly logo

Creating Graphics with ggplot2

Above, we used the qplot function to build ggplot2 objects in one function call. Sometimes, you may need more flexibility than qplot provides. Alternately, you may want to write a more verbose description of your plot to make your code easier to read. To do this, you create your plot in several parts:

  1. You call the ggplot function to create a new ggplot object, define the input data, and define aesthetic mappings

  2. You add layers to the ggplot object

Note that you add layers (and options) to a ggplot object by using the + operator.

As an example, we could create a plot identical to the one we started with using these statements:

> plt <- ggplot(data=d, mapping=aes(x=a, y=b)) + geom_point()
> summary(plt)
data: a, b, c [10x3]
mapping:  x = a, y = b
faceting: facet_null()
-----------------------------------
geom_point: na.rm = FALSE
stat_identity:
position_identity: (width = NULL, height = NULL)

To create ggplot objects without qplot, you begin by using the ggplot function.

ggplot(data, mapping = aes(), ..., environment = globalenv())

Here is a description of the arguments to ggplot2:

ArgumentDescriptionDefault
dataThe default data frame for the plot 
mappingDefault list of aesthetic mappings for the plotaes()
environmentEnvironment in which the aesthetics should occurglobalenv()
...  

The ggplot function returns a new ggplot object with no layers. You can’t actually print a chart from this object because no layers are defined:

> ggplot(data=d, mapping=aes(x=a, y=b))

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required