View source: R/geom-nodespace.R
| geom_nodespace | R Documentation |
Constructor for GeomNodeSpace ggproto objects.
A wrapper around geom_point that enables direct use of node attributes stored in GraphSpace objects as aesthetics.
This geom is designed to map node-level attributes (e.g., fill,
size) or any aesthetics supported by GeomPoint.
geom_nodespace(
mapping = NULL,
data = NULL,
stat = StatNodeSpace,
position = "identity",
...,
na.rm = FALSE,
show.legend = NA,
inherit.aes = FALSE,
raster = FALSE,
dpi = NULL,
dev = "cairo",
scale = 1
)
nodespace_handler(mapping = NULL)
mapping |
Set of aesthetic mappings created by |
data |
The data to be displayed in this layer. It can be a
GraphSpace object, an igraph object, or the
|
stat |
The statistical transformation to use on the data.
Defaults to |
position |
Position adjustment, either as a string or the result of a call to a position adjustment function. |
... |
Additional parameters passed to the underlying drawing function in GeomNodeSpace. |
na.rm |
Logical. Should missing values be removed?
Defaults to |
show.legend |
Logical or a named logical vector indicating whether this layer should be included in legends. |
inherit.aes |
Logical. If |
raster |
Logical. Should node glyphs be rasterized?
Rasterization support is based on |
dpi |
Numeric. Rasterization resolution. |
dev |
Character. Rasterization backend. One of |
scale |
Numeric. Rasterization scaling factor
(see |
The interpretation of size depends on how it is provided:
As an aesthetic: When mapped within aes(), size
follows the behavior of geom_point, using absolute
units to ensure consistency with the plot legends.
As a parameter: When set outside aes(), size is
treated as a percentage of the viewport ([0, 100]), scaling
in npc units. This allows nodes to resize dynamically with
viewport changes.
A ggplot2 layer that renders node glyphs defined by GeomNodeSpace.
geom_nodespace() understands geom_point aesthetics.
If these aesthetics are not explicitly provided in aes(), they
are automatically retrieved from the GraphSpace object.
x, y | Required (automatically supplied). |
fill | Node interior colour (see aes_colour_fill_alpha). |
colour | Node border colour (see aes_colour_fill_alpha). |
alpha | Transparency (see aes_colour_fill_alpha). |
shape | Node shape (see points and aes_linetype_size_shape). |
size | Node size (see drawing section and aes_linetype_size_shape). |
stroke | Node line width (see gg_par and aes_linetype_size_shape). |
Required aesthetics x and y are supplied from the
GraphSpace object and do not need to be manually mapped.
Additional parameters can be passed to control fixed values for the layer.
For example: fill = "red", stroke = 3, alpha = 0.5, or shape = 21.
geom_nodespace is compatible with the ggraph methods.
When used within a ggraph() call, the default nodespace_handler()
automatically:
Identifies the current layout_ggraph.
Extracts the x and y coordinates calculated by ggraph.
Reconstructs a temporary GraphSpace object to inject spatial
metadata and user-chosen ggraph layout.
GraphSpace, geom_edgespace, geom_graphspace, geom_point
library(RGraphSpace)
library(igraph)
library(ggplot2)
# Make a demo igraph
gtoy1 <- make_star(15, mode="out")
# Set some node attributes
V(gtoy1)$nodeSize <- runif(vcount(gtoy1), 1, 20)
V(gtoy1)$nodeColor <- rainbow(vcount(gtoy1))
# Set some variables
V(gtoy1)$user_var1 <- runif(vcount(gtoy1), 1, 3)^3
V(gtoy1)$user_var2 <- rep(c(1, 2, 3), each = 5)
# Create a GraphSpace object
gs <- GraphSpace(gtoy1, layout = layout_in_circle(gtoy1))
## Not run:
# Example 1: Nodes scaling with the legend
# When 'size' is mapped inside aes(), it follows
# ggplot2 default behavior: size is translated
# to absolute units (mm) via 'scale_size()'.
ggplot() +
geom_edgespace(data = gs, arrow_offset = 0.01) +
geom_nodespace(mapping = aes(size = nodeSize, fill = user_var2),
data = gs) +
scale_size(range = c(1, 12)) +
theme(aspect.ratio = 1)
# Example 2: Nodes scaling with the viewport
# When 'size' is passed as a node attribute,
# inherited from the igraph object, it is
# interpreted as a percentage of the plotting
# area and translated to NPC units.
ggplot() +
geom_edgespace(data = gs, arrow_offset = 0.01) +
geom_nodespace(mapping = aes(fill = user_var2), data = gs) +
theme(aspect.ratio = 1)
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.