Как построить несколько фрагментов 3D-изображения мозга с помощью подзаголовков nilearn и matplotlib

#python #matplotlib #subplot #neuroscience #nilearn

#python #matplotlib #подзаголовок #нейронаука #nilearn

Вопрос:

Я новичок в кодировании, поэтому, если я совершенно неправ, просто скажите мне.

Я хочу построить 25 фрагментов сканирования мозга с использованием nilearn. Эти 25 фрагментов должны проходить вдоль оси z с шагом value = 2. Я хочу использовать подзаголовки, чтобы представить их с помощью подзаголовков.

Вот что у меня есть на данный момент:

 cuts = np.arange(-25,25,2)
fig, (axes1,axes2,axes3,axes4,axes5) = plt.subplots(5,1, figsize=(10,10))

for axes in [axes1,axes2,axes3,axes4,axes5]:
    for slc in cuts:
        plotting.plot_stat_map(rsn_four, display_mode='z', axes=axes, cut_coords=[slc], threshold=2)
plt.show()
  

‘rsn_four’ — это файл 3D Nifti с выделенным жирным шрифтом.

Вывод:

Я думаю, что одна из моих самых больших проблем заключается в том, что я не знаю, как реализовать, что для каждой оси я хочу 5 значений np.arange(), а затем перенести его на следующую ось, продолжая подсчет.

Если я пропустил какую-то информацию, дайте мне знать, это мой первый пост здесь!

Ответ №1:

Встроенный enumerate может быть полезен здесь для получения только правильных индексов из срезов, которые вы хотели бы получить для каждого изображения

 cuts = np.arange(-25,25,2)
fig, (axes1,axes2,axes3,axes4,axes5) = plt.subplots(5,1, figsize=(10,10))

for num, axes in enumerate([axes1,axes2,axes3,axes4,axes5]):
    for slc in cuts[num:num 5]:
        plotting.plot_stat_map(rsn_four, display_mode='z', axes=axes, cut_coords=[slc], threshold=2)
plt.show()