Plot Haxby masks

Small script to show how to plot several masks at the same time.

Load Haxby dataset

from nilearn import datasets
from nilearn.plotting import plot_anat, show

haxby_dataset = datasets.fetch_haxby()

# print basic information on the dataset
print(
    f"First subject anatomical nifti image (3D) is at: {haxby_dataset.anat[0]}"
)
[fetch_haxby] Dataset directory found:
/home/runner/work/nilearn/nilearn/nilearn_data/haxby2001
First subject anatomical nifti image (3D) is at: /home/runner/work/nilearn/nilearn/nilearn_data/haxby2001/subj2/anat.nii.gz

Plot the masks

Here we will generate a single legend using the trick described on https://matplotlib.org/2.0.2/users/legend_guide.html

import matplotlib.pyplot as plt
from matplotlib.patches import Rectangle

mask_vt_filename = haxby_dataset.mask_vt[0]
mask_house_filename = haxby_dataset.mask_house[0]
mask_face_filename = haxby_dataset.mask_face[0]
masks = [
    mask_vt_filename,
    mask_house_filename,
    mask_face_filename,
]

colors = ["red", "blue", "limegreen"]

z_slice = -14
fig = plt.figure(figsize=(4, 5.4), facecolor="k")
display = plot_anat(
    haxby_dataset.anat[0],
    display_mode="z",
    cut_coords=[z_slice],
    figure=fig,
)

for mask, color in zip(masks, colors, strict=False):
    display.add_contours(
        mask,
        antialiased=False,
        linewidth=4.0,
        levels=[0],
        colors=[color],
    )

p_v = Rectangle((0, 0), 1, 1, fc="red")
p_h = Rectangle((0, 0), 1, 1, fc="blue")
p_f = Rectangle((0, 0), 1, 1, fc="limegreen")
plt.legend(
    [p_v, p_h, p_f],
    ["vt", "house", "face"],
    loc="lower right",
)

show()
plot haxby masks
/home/runner/work/nilearn/nilearn/.tox/doc/lib/python3.10/site-packages/nilearn/plotting/displays/_axes.py:98: UserWarning:

The following kwargs were not used by contour: 'linewidth'

Total running time of the script: (0 minutes 0.956 seconds)

Estimated memory usage: 172 MB

Gallery generated by Sphinx-Gallery