geom_polygon

geom_polygon(mapping=NULL, data=NULL, stat="identity", position="identity", ...)

Polygon, a filled path

This page describes geom_polygon, see layer and qplot for how to create a complete plot from individual components.

What do you think of the documentation? Please let me know by filling out this short online survey.

Aesthetics

The following aesthetics can be used with geom_polygon. Aesthetics are mapped to variables in the data with the aes function: geom_polygon(aes(x = var)). Note that you do not need quotes around the variable name.

Scales control how the variable is mapped to the aesthetic and are listed after each aesthetic.

Aesthetic Default Related scales
xrequiredcontinuous, date, datetime, discrete
yrequiredcontinuous, date, datetime, discrete
colourNAbrewer, gradient, gradient2, gradientn, grey, hue, identity, manual
fillgrey20brewer, gradient, gradient2, gradientn, grey, hue, identity, manual
size0.5identity, manual, size
linetype1identity, linetype, manual
alpha1

Layers are divided into groups by the group aesthetic. By default this is set to the interaction of all categorical variables present in the plot.

Parameters

Parameters control the appearance of the geom. In addition to the parameters listed below (if any), any aesthetic can be used as a parameter, in which case it will override any aesthetic mapping.

Returns

This function returns a layer object.

See also

Examples

> # When using geom_polygon, you will typically need two data frames: 
> # one contains the coordinates of each polygon (positions),  and the 
> # other the values associated with each polygon (values).  An id 
> # variable links the two together 
>  
> ids <- factor(c("1.1", "2.1", "1.2", "2.2", "1.3", "2.3")) 
>  
> values <- data.frame( 
+   id = ids, 
+   value = c(3, 3.1, 3.1, 3.2, 3.15, 3.5) 
+ ) 
>  
> positions <- data.frame( 
+   id = rep(ids, each = 4), 
+   x = c(2, 1, 1.1, 2.2, 1, 0, 0.3, 1.1, 2.2, 1.1, 1.2, 2.5, 1.1, 0.3, 
+   0.5, 1.2, 2.5, 1.2, 1.3, 2.7, 1.2, 0.5, 0.6, 1.3), 
+   y = c(-0.5, 0, 1, 0.5, 0, 0.5, 1.5, 1, 0.5, 1, 2.1, 1.7, 1, 1.5, 
+   2.2, 2.1, 1.7, 2.1, 3.2, 2.8, 2.1, 2.2, 3.3, 3.2) 
+ ) 
>  
> # Currently we need to manually merge the two together 
> datapoly <- merge(values, positions, by=c("id")) 
>  
> (p <- ggplot(datapoly, aes(x=x, y=y)) + geom_polygon(aes(fill=value, group=id))) 
  
>  
> # Which seems like a lot of work, but then it's easy to add on 
> # other features in this coordinate system, e.g.: 
>  
> stream <- data.frame( 
+   x = cumsum(runif(50, max = 0.1)), 
+   y = cumsum(runif(50,max = 0.1)) 
+ ) 
>  
> p + geom_line(data = stream, colour="grey30", size = 5) 
  
>  
> # And if the positions are in longitude and latitude, you can use 
> # coord_map to produce different map projections. 

What do you think of the documentation? Please let me know by filling out this short online survey.