A treemap is a space filling layout that recursively divides a rectangle to
the children of the node. Often only the leaf nodes are drawn as nodes higher
up in the hierarchy would obscure what is below. geom_treemap
is a
shorthand for geom_node_treemap
as node is implicit in the case of
treemap drawing
geom_node_tile(mapping = NULL, data = NULL, position = "identity",
show.legend = NA, ...)
The data to be displayed in this layer. There are three options:
If NULL
, the default, the data is inherited from the plot
data as specified in the call to ggplot()
.
A data.frame
, or other object, will override the plot
data. All objects will be fortified to produce a data frame. See
fortify()
for which variables will be created.
A function
will be called with a single argument,
the plot data. The return value must be a data.frame.
, and
will be used as the layer data.
Position adjustment, either as a string, or the result of a call to a position adjustment function.
logical. Should this layer be included in the legends?
NA
, the default, includes if any aesthetics are mapped.
FALSE
never includes, and TRUE
always includes.
It can also be a named logical vector to finely select the aesthetics to
display.
Other arguments passed on to layer()
. These are
often aesthetics, used to set an aesthetic to a fixed value, like
color = "red"
or size = 3
. They may also be parameters
to the paired geom/stat.
geom_treemap understand the following aesthetics. Bold aesthetics are automatically set, but can be overridden.
x
y
width
height
alpha
colour
fill
size
stroke
filter
Other geom_node_*: geom_node_arc_bar
,
geom_node_circle
,
geom_node_point
,
geom_node_text
# NOT RUN {
require(igraph)
gr <- graph_from_data_frame(flare$edges, vertices = flare$vertices)
ggraph(gr, 'treemap', weight = 'size') + geom_node_tile()
# We can color by modifying the graph
gr <- tree_apply(gr, function(node, parent, depth, tree) {
if (depth == 1) {
tree <- set_vertex_attr(tree, 'Class', node, V(tree)$shortName[node])
} else if (depth > 1) {
tree <- set_vertex_attr(tree, 'Class', node, V(tree)$Class[parent])
}
tree
})
ggraph(gr, 'treemap', weight = 'size') +
geom_node_tile(aes(fill = Class, filter = leaf, alpha = depth), colour = NA) +
geom_node_tile(aes(size = depth), colour = 'white') +
scale_alpha(range = c(1, 0.5), guide = 'none') +
scale_size(range = c(4, 0.2), guide = 'none')
# }
Run the code above in your browser using DataLab