Hi Sean,
Plotting over an image (a brain slice, in this case) can make this a frustrating task. What is probably easiest is to work from the code in "plot_brainGraph_multi". Below is code for plotting in a 2x3 layout over an axial slice.
X <- mni152@.Data
# This is essentially what "oro.nifti::image.nifti" does
zlim <- c(3500, max(X[, , 46])) # Change this if you want a different slice
imcol <- gray(0:64/64)
breaks <- c(zlim[1], seq(min(zlim), max(zlim), length=64), zlim[2])
layout(rbind(1:3, 4:6))
for (i in 1:6) {
par(mar=c(0, 0, 0, 0), bg='black')
graphics::image(1;91, 1:109, X[, , 46], col=imcol, breaks=breaks) # Change slice number if you did above
par(new=TRUE)
plot(g[[i]], plane='axial', mni=FALSE, ...) # The "mni=FALSE" is the key here
}
You can do pretty much any layout, I think, but then you might have to play around with the "widths" and "heights" arguments; otherwise, some of the plots might look "squished".
If you want to plot L or R sagittal, then the MNI152 data is:
X <- mni152@.Data
L <- nifti(X[rev(seq_len(nrow(X))), rev(seq_len(ncol(X))), ])
R <- aperm(X, c(2, 3, 1))
L <- aperm(L, c(2, 3, 1))
The differences for L and R are because I wanted the anterior part of the brain to be facing left and right, respectively.
The reason I don't use "ggplot2" for this kind of thing is because of plotting the brain slice underneath; I never found a solid way to do it, and it seemed like it wasn't worth the effort to me. I believe "ggplot2" has functionality for plotting over maps and things like that, so there is probably a similar way to do it for an image. But I've been satisfied with the solutions I came up with. You may want to check out the "ggraph" package; there is also "geomnet" and "ggnet", but I liked "ggraph" the most out of those 3.
Chris