function plot(obj, varargin) %PLOT Plot the data of a PricklyPear object % plot(PP) % % See also pricklypear/anadata % Handle input p = inputParser(); p.addOptional('channel', '', @(x)ischar(x)||iscell(x)); p.addOptional('metric', '', @(x)ischar(x)||iscell(x)); p.parse(varargin{:}); p = p.Results; if ~isempty(p.channel) && ischar(p.channel) p.channel = {p.channel}; end if ~isempty(p.metric) && ischar(p.metric) p.metric = {p.metric}; end % Plot figureFullScreen(1000, 800); hold on; clrs = {'green_500' 'green_700' 'green_900'... 'blue_700'... 'green_900' 'green_700' 'green_500'... 'red_700' 'red_500'}; % Select channels channels = {'d0d' 'd0m' 'd0p' 'c' 'd1p' 'd1m' 'd1d' 'ap' 'ad'}; if ~isempty(p.channel) [channels iChan] = intersect(channels, p.channel); clrs = clrs(iChan); end % Spiketimes spkt = spiketimes(obj); % SubplotXY options opts = struct(); opts.margin = [0.1 0.08 0.08 0.08]; opts.spaceBetweenPlots = 0; opts.nX = 1; opts.nY = numel(channels); opts.iX = 1; opts.iY = 1; % Other variables h = zeros(numel(channels), 1); yl = [-80 60]; % For each channel for ii = 1:numel(channels) opts.iY = ii; h(ii) = subplotXY(opts); hold on; % Plot spiketimes if numel(spkt) > 0 plot([spkt spkt zeros(size(spkt))*nan]',... [ones(size(spkt))*yl(1) ones(size(spkt))*yl(2) ones(size(spkt))*yl(2)]',... 'Color', [0.75 0.75 0.75]); end % Plot data plot(obj.x, anadata(obj, channels{ii})+(ii-1), 'Color', mdc(clrs{ii})); box off; ylim(yl); ylabel(channels{ii}); if mod(ii,2) == 0 set(gca, 'Color', [1 1 1]*0.95); end if ii < numel(channels) set(gca, 'xtick', []); end end linkaxes(h, 'x'); end