[FieldTrip] how to specify each channel-color in a topoplot

michele colombo michelecolombo at live.it
Fri May 30 17:19:24 CEST 2014


Dear all,

  My goal is to make a double plot:
1) a subplot with a topoplot of channel-values that are color-mapped,
2) a sorted stem-plot where the stem color is mapped to its height., and 
represent the channel values
The outcome should be more easily interpretable than a colorbar, because 
it would allow to appreciate the whole distribution at a glance, and 
provide spatial info about the distance between colors.

  The first step would be to visualize a 1*num_channels vector plotted 
on the eeg scalp, with the usual topoplot style, and with colors that I 
define.
I compute these values outside of fieldtrip, so I need to re-create the 
expected fieldtrip structure.
Question: how to properly preserve the value-color mapping?

all the intuitive options I tried fail with this respect. somehow the 
colormap given is used as the range of possible color-rgb-values, and 
subsequently the colors are chosen from this map. Instead, I would want 
to actually give the channel-by-channel color value to be plotted on the 
scalp, (interpolating as usual in the space across channels).
attached, you can see a failed attempt: the colormap plotted is 
flattened to a very narrow sub-range of the colomap given.

relevant parts of the used code:
----
                hh=axes('Position',[.62 .6 .3 .3],'Layer','top'); % 
overlay on plot
% the way i define the colormap. I tried also with a simple: 
winter(number_of_channels)
                 cfg.colormap= rgbslide(all_chan_stat,'low_color',[0 0 
0.75],'low_val',min(all_chan_stat), ...
                     'zero_color',[0 0.75 
0.75],'zero_val',median(all_chan_stat), ...
                     'high_color',[1 0.9 0],'res',numel(all_chan_stat));
                 if ~isempty([bads_max bads_min])
                     cfg.highlight=sort([bads_max bads_min]); % hilight 
some outliers. this works fine.
                 end
                 cfg.interpolation='v4';
                 cfg.style='straight';
                  cfg.maplimits='maxmin';
fieldtrippath='/data1/toolbox/fieldtrip/compat/';
                     addpath(fieldtrippath);
                 topoplot(cfg,[all_chan_stat']);  % all_chan_stat is my 
1*num_channels = 257 channels from the EGI system.
% the old-deprecated topoplot function seems more easily accessible than 
the current one, provided I just use fieldtrip to plot, not to compute, 
the values.

                 sorted=sort(all_chan_stat)
               for cc= 1: length(channels)
                         stem(cc, sorted(cc), 'Color', 
cfg.colormap(cc,:), 'MarkerFaceColor', cfg.colormap(cc,:)) ; hold on;
                     end
---


Another option would be to first do the topoplot, given a colormap, then 
to retrieve  the color plotted at each channel (but I don't know how), 
and use these colors to plot the stem


---
another attempted option:
  set(gca,'colororder',cfg.colormap);
plot(channels, all_chan_stat)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: topoplot_and_stem-colors.png
Type: image/png
Size: 39798 bytes
Desc: not available
URL: <http://mailman.science.ru.nl/pipermail/fieldtrip/attachments/20140530/592d663a/attachment.png>


More information about the fieldtrip mailing list