geom_tilegeom_tile(mapping=NULL, data=NULL, stat="identity", position="identity", ...)
Tile plot as densely as possible, assuming that every tile is the same size.
Similar to levelplot and image.
This page describes geom_tile, 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.
The following aesthetics can be used with geom_tile. Aesthetics are mapped to variables in the data with the aes function: geom_tile(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 |
|---|---|---|
| x | required | continuous, date, datetime, discrete |
| y | required | continuous, date, datetime, discrete |
| fill | grey20 | brewer, gradient, gradient2, gradientn, grey, hue, identity, manual |
| colour | NA | brewer, gradient, gradient2, gradientn, grey, hue, identity, manual |
| size | 0.1 | identity, manual, size |
| linetype | 1 | identity, linetype, manual |
| alpha | 1 |
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 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.
This function returns a layer object.
> # Generate data > pp <- function (n,r=4) { + x <- seq(-r*pi, r*pi, len=n) + df <- expand.grid(x=x, y=x) + df$r <- sqrt(df$x^2 + df$y^2) + df$z <- cos(df$r^2)*exp(-df$r/6) + df + } > p <- ggplot(pp(20), aes(x=x,y=y)) > > p + geom_tile() #pretty useless!> > # Add aesthetic mappings > p + geom_tile(aes(fill=z))
> > # Change scale > p + geom_tile(aes(fill=z)) + scale_fill_gradient(low="green", high="red")
> > # Use qplot instead > qplot(x, y, data=pp(20), geom="tile", fill=z)
> qplot(x, y, data=pp(100), geom="tile", fill=z)
> > # Missing values > p <- ggplot(pp(20)[sample(20*20, size=200),], aes(x=x,y=y,fill=z)) > p + geom_tile()
> > # Input that works with image > image(t(volcano)[ncol(volcano):1,]) > ggplot(melt(volcano), aes(x=X1, y=X2, fill=value)) + geom_tile()
> > # inspired by the image-density plots of Ken Knoblauch > cars <- ggplot(mtcars, aes(y=factor(cyl), x=mpg)) > cars + geom_point()
> cars + stat_bin(aes(fill=..count..), geom="tile", binwidth=3, + position="identity")
> cars + stat_bin(aes(fill=..density..), geom="tile", binwidth=3, + position="identity")
> > cars + stat_density(aes(fill=..density..), geom="tile", position="identity")
> cars + stat_density(aes(fill=..count..), geom="tile", position="identity")
> > # Another example with with unequal tile sizes > x.cell.boundary <- c(0, 4, 6, 8, 10, 14) > example <- data.frame( + x = rep(c(2, 5, 7, 9, 12), 2), + y = factor(rep(c(1,2), each=5)), + z = rep(1:5, each=2), + w = rep(diff(x.cell.boundary), 2) + ) > > qplot(x, y, fill=z, data=example, geom="tile")
> qplot(x, y, fill=z, data=example, geom="tile", width=w)
> qplot(x, y, fill=factor(z), data=example, geom="tile", width=w)
> > # You can manually set the colour of the tiles using > # scale_manual > col <- c("darkblue", "blue", "green", "orange", "red") > qplot(x, y, fill=col[z], data=example, geom="tile", width=w, group=1) + + scale_fill_identity(labels=letters[1:5], breaks=col)
![]()
What do you think of the documentation? Please let me know by filling out this short online survey.