PlotTreemap {DescTools} | R Documentation |
Create a Treemap
Description
Creates a treemap where rectangular regions of different size, color, and groupings visualize the elements.
Usage
PlotTreemap(x, grp = NULL, labels = NULL, cex = 1, text.col = "black",
col = rainbow(length(x)), labels.grp = NULL, cex.grp = 3,
text.col.grp = "black", border.grp = "grey50",
lwd.grp = 5, main = "")
Arguments
x |
a vector storing the values to be used to calculate the areas of rectangles. |
grp |
a vector specifying the group (i.e. country, sector, etc.) to which each element belongs. |
labels |
a vector specifying the labels. |
cex |
the character extension for the area labels. Default is 1. |
text.col |
the text color of the area labels. Default is "black". |
col |
a vector storing the values to be used to calculate the color of rectangles. |
labels.grp |
a character vector specifying the labels for the groups. |
cex.grp |
the character extension for the group labels. Default is 3. |
text.col.grp |
the text color of the group labels. Default is "black". |
border.grp |
the border color for the group rectangles. Default is "grey50". Set this to |
lwd.grp |
the linewidth of the group borders. Default is 5. |
main |
a title for the plot. |
Details
A treemap is a two-dimensional visualization for quickly analyzing large, hierarchical data sets. Treemaps are unique among visualizations because they provide users with the ability to see both a high level overview of data as well as fine-grained details. Users can find outliers, notice trends, and perform comparisons using treemaps. Each data element contained in a treemap is represented with a rectangle, or a cell. Treemap cell arrangement, size, and color are each mapped to an attribute of that element. Treemap cells can be grouped by common attributes. Within a group, larger cells are placed towards the bottom left, and smaller cells are placed at the top right.
Value
returns a list with groupwise organized midpoints in x and y for the rectangles within a group and for the groups themselves.
Author(s)
Andri Signorell <andri@signorell.net>, strongly based on code from Jeff Enos jeff@kanecap.com
See Also
Examples
set.seed(1789)
N <- 20
area <- rlnorm(N)
PlotTreemap(x=sort(area, decreasing=TRUE), labels=letters[1:20], col=Pal("RedToBlack", 20))
grp <- sample(x=1:3, size=20, replace=TRUE, prob=c(0.2,0.3,0.5))
z <- Sort(data.frame(area=area, grp=grp), c("grp","area"), decreasing=c(FALSE,TRUE))
z$col <- SetAlpha(c("steelblue","green","yellow")[z$grp],
unlist(lapply(split(z$area, z$grp),
function(...) LinScale(..., newlow=0.1, newhigh=0.6))))
PlotTreemap(x=z$area, grp=z$grp, labels=letters[1:20], col=z$col)
b <- PlotTreemap(x=z$area, grp=z$grp, labels=letters[1:20], labels.grp=NA,
col=z$col, main="Treemap")
# the function returns the midpoints of the areas
# extract the group midpoints from b
mid <- do.call(rbind, lapply(lapply(b, "[", 1), data.frame))
# and draw some visible text
BoxedText( x=mid$grp.x, y=mid$grp.y, labels=LETTERS[1:3], cex=3, border=NA,
col=SetAlpha("white",0.7) )