Normalize topomap

Dear all,

I want to normalize the data of the frequency bands in the topomap. I set normalize: True in the function, but the colorbar is not normalized across all frequency bands. What should I do to ensure the colorbar is normalized for all frequency bands?

Thank you in advance

plot = dict_eeg["CONTROL"]["round_1_instument_1"].plot_psd_topomap(ch_type='eeg', normalize=True, show=False)
plot.suptitle("Ronda 1 instrumento 1 Control (visual)", fontsize=16, y=1.2)
plot.savefig(path_to_data_save_plots/"plot_psd_topomap"/"plot_psd_topomap_visual_control_round_1_instrument_1.png", dpi=400)
plot.show()

plot = dict_eeg["MCI"]["round_1_instument_1"].plot_psd_topomap(ch_type='eeg', normalize=True, show=False)
plot.suptitle("Ronda 1 instrumento 1 MCI (visual)", fontsize=16, y=1.2)
plot.savefig(path_to_data_save_plots/"plot_psd_topomap"/"plot_psd_topomap_visual_mci_round_1_instrument_1.png", dpi=400)
plot.show()

plot = dict_eeg["EA"]["round_1_instument_1"].plot_psd_topomap(ch_type='eeg', normalize=True, show=False)
plot.suptitle("Ronda 1 instrumento 1 EA (visual)", fontsize=16, y=1.2)
plot.savefig(path_to_data_save_plots/"plot_psd_topomap"/"plot_psd_topomap_visual_ea_round_1_instrument_1.png", dpi=400)
plot.show()

Hi,

normalize=True is only dividing each of the bands by the total power, but this does not set the colourbar limits to be equal. vlim="joint" is probably what you’re looking for. This will set the colourbar limits to the same value across all bands.

On a separate note, the plot_psd_topomap() method you are using is legacy code. It is now recommended to use .compute_psd().plot_topomap(). You can also use vlim="joint" with this new plot_topomap() method.

Cheers!

2 Likes

Hi Thomas,
Thank you for you recommendation, We will use it as you say, and I let you know if we need something else.

1 Like

Hi Thomas,

we use your recommendation and all the data is held by delta, which should not happen with the protocol we have for signals.

plot.suptitle("Ronda 1 Control", fontsize=16, y=1.2)
plot.savefig(path_to_data_save_plots/"compute_psd_plot_topomap"/"compute_psd_plot_topomap_control_round_1", dpi=400)
plot.show()

plot = dict_eeg["MCI"]["round_1"].compute_psd().plot_topomap(ch_type='eeg', normalize=True, vlim='joint', show=False)
plot.suptitle("Ronda 1 MCI", fontsize=16, y=1.2)
plot.savefig(path_to_data_save_plots/"compute_psd_plot_topomap"/"compute_psd_plot_topomap_mci_round_1", dpi=400)
plot.show()

plot = dict_eeg["EA"]["round_1"].compute_psd().plot_topomap(ch_type='eeg', normalize=True, vlim='joint', show=False)
plot.suptitle("Ronda 1 EA", fontsize=16, y=1.2)
plot.savefig(path_to_data_save_plots/"compute_psd_plot_topomap"/"compute_psd_plot_topomap_ea_round_1", dpi=400)
plot.show()

Sorry @isabelceo, I missed the notification for this.

Do you also see very strong low-frequency activity in the standard channel-wise PSD? Looks like a very dramatic drop-off. In any case you see the same effect in the original image you sent (scale of delta is ~0.6-08; scale of rest is much lower ~0.01-0.1).

Perhaps setting normalize=False and dB=True (will be ignored if normalization=True) makes this look better?

Cheers!