The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
A brain atlas typically has several views – lateral and medial for
cortical atlases, or axial, coronal, and sagittal slices for subcortical
and tract atlases. position_brain() controls how those
views are arranged in the final plot.
The function works differently depending on the atlas type, so this vignette covers cortical and subcortical/tract atlases separately.
Cortical atlases like dk have two layout dimensions:
hemi (left or right) and view
(lateral, medial, etc.). The formula syntax mirrors
facet_grid() – left side is rows, right side is
columns:
ggplot() +
geom_brain(
atlas = dk(),
position = position_brain(hemi ~ view),
show.legend = FALSE
) +
theme_void()Flip the formula to transpose the layout:
ggplot() +
geom_brain(
atlas = dk(),
position = position_brain(view ~ hemi),
show.legend = FALSE
) +
theme_void()Use . with + to collapse everything into a
single row or column. This is handy for compact figures:
ggplot() +
geom_brain(
atlas = dk(),
position = position_brain(. ~ hemi + view),
show.legend = FALSE
) +
theme_void()ggplot() +
geom_brain(
atlas = dk(),
position = position_brain(hemi + view ~ .),
show.legend = FALSE
) +
theme_void()Subcortical atlases like aseg and tract atlases like
tracula don’t have the hemisphere/view pairing that
cortical atlases do. Their views are individual slices
(e.g. "axial_3", "sagittal"). That opens up a
different set of positioning tools.
The simplest options. "horizontal" is the default:
ggplot() +
geom_brain(
atlas = aseg(),
position = position_brain("horizontal"),
show.legend = FALSE
) +
theme_void()ggplot() +
geom_brain(
atlas = aseg(),
position = position_brain("vertical"),
show.legend = FALSE
) +
theme_void()When you have many views, a grid keeps things readable. Specify
nrow, ncol, or both:
ggplot() +
geom_brain(
atlas = aseg(),
position = position_brain(nrow = 2),
show.legend = FALSE
) +
theme_void()ggplot() +
geom_brain(
atlas = aseg(),
position = position_brain(ncol = 3),
show.legend = FALSE
) +
theme_void()The views parameter lets you select which views to
include and in what order. Check what’s available with
ggseg.formats::atlas_views():
ggseg.formats::atlas_views(aseg())
#> [1] "axial_3" "axial_4" "axial_5" "axial_6" "coronal_1" "coronal_2"
#> [7] "sagittal"ggplot() +
geom_brain(
atlas = aseg(),
position = position_brain(
views = c("sagittal", "axial_3", "coronal_3")
),
show.legend = FALSE
) +
theme_void()Combine views with nrow or
ncol for a custom grid:
ggplot() +
geom_brain(
atlas = aseg(),
position = position_brain(
views = c("sagittal", "axial_3", "axial_5", "coronal_3"),
nrow = 2
),
show.legend = FALSE
) +
theme_void()The type ~ . formula groups views by their orientation –
all axial slices together, all coronal slices together, and so on. The
type is extracted from the view name (everything before the first
underscore):
If you’re using the geom_sf() workflow instead of
geom_brain(), use reposition_brain() to
rearrange the data before plotting. It takes the same arguments:
atlas_data <- as.data.frame(aseg())
repositioned <- reposition_brain(
atlas_data,
views = c("sagittal", "axial_3", "coronal_3"),
nrow = 1
)
ggplot(repositioned) +
geom_sf(aes(fill = region), show.legend = FALSE) +
theme_void()Use annotate_brain() to label each view with its name.
For cortical atlases the label combines hemisphere and view (e.g. “left
lateral”); for subcortical and tract atlases it uses the view name
directly.
Store the position_brain() specification in an object so
both layers share the same layout:
pos <- position_brain(hemi ~ view)
ggplot() +
geom_brain(atlas = dk(), position = pos, show.legend = FALSE) +
annotate_brain(atlas = dk(), position = pos) +
theme_void()It works with any positioning — horizontal, vertical, grid, and formula layouts:
pos <- position_brain(nrow = 2)
ggplot() +
geom_brain(atlas = aseg(), position = pos, show.legend = FALSE) +
annotate_brain(atlas = aseg(), position = pos) +
theme_void()Text appearance is customisable through standard
annotate() arguments:
ggplot() +
geom_brain(atlas = dk(), show.legend = FALSE) +
annotate_brain(
atlas = dk(),
size = 2.5,
colour = "grey50",
fontface = "italic"
) +
theme_void()| Atlas type | Options |
|---|---|
| Cortical | hemi ~ view, view ~ hemi,
. ~ hemi + view, hemi + view ~ . |
| Subcortical / Tract | "horizontal", "vertical",
nrow, ncol, views,
type ~ . |
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.