forked from racheldenison/temporal-attention
-
Notifications
You must be signed in to change notification settings - Fork 0
/
rd_plotTemporalAttentionAdjustResponseGroup.m
122 lines (112 loc) · 3.49 KB
/
rd_plotTemporalAttentionAdjustResponseGroup.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
% rd_plotTemporalAttentionAdjustResponseGroup.m
%% setup
subjectIDs = {'bl','rd','id','ec','ld','en','sj','ml','ca','jl','ew','jx'};
run = 9;
nSubjects = numel(subjectIDs);
saveFigs = 0;
%% get data
for iSubject = 1:nSubjects
subjectID = subjectIDs{iSubject};
[groupData.error(iSubject,:), groupData.pError(iSubject,:)] = ...
rd_plotTemporalAttentionAdjustResponse(subjectID, run);
end
xEdges = mean(groupData.error,1);
for iSubject = 1:nSubjects
for iEL = 1:2
groupData.pError2{iEL}(:,:,iSubject) = groupData.pError{iSubject,iEL};
groupMean.rate{iEL} = mean(groupData.pError2{iEL},3);
groupSte.rate{iEL} = std(groupData.pError2{iEL},0,3)./sqrt(nSubjects);
end
end
%% evaluate special points (like the peak)
idx = xEdges==0;
% idx = xEdges>=-5 & xEdges<=5;
for iEL = 1:2
specialPointsMean(:,:,iEL) = mean(groupData.pError2{iEL}(:,idx,:),2);
end
%% plot
%% overlaid
plotType = 'line'; % 'area','line','shadedError'
colors = {'b','g','r'};
fig(1) = figure;
for iEL = 1:2
subplot(1,2,iEL)
hold on
for iV = 1:3
vals = groupMean.rate{iEL}(iV,:);
valsSte = groupSte.rate{iEL}(iV,:);
switch plotType
case 'area'
p1 = area(xEdges, vals, 'FaceColor', colors{iV}, ...
'EdgeColor', colors{iV}, 'LineWidth', 1.5);
child = get(a1, 'Children');
set(child,'FaceAlpha',.5);
case 'line'
p1 = plot(xEdges, vals, 'Color', colors{iV}, ...
'LineWidth', 1);
case 'shadedError'
p1 = shadedErrorBar(xEdges, vals, valsSte, colors{iV}, 1);
otherwise
error('plotType not recognized')
end
end
xlim([-90 90])
ylim([0 .08])
xlabel('error in orientation report')
ylabel('p(error)')
if iEL == 2
legend('valid','invalid','neutral')
legend('boxoff')
end
plot_vertical_line(0);
end
rd_supertitle(sprintf('%s ', subjectIDs{:}));
rd_raiseAxis(gca);
%% separate plots for each validity
fig(2) = figure;
targetNames = {'T1','T2'};
validityNames = {'valid','invalid','neutral'};
validityOrder = [1 3 2];
for iEL = 1:2
for iV = 1:3
v = validityOrder(iV);
subplot(3,2,2*(iV-1)+iEL)
hold on
plot_vertical_line(0);
vals = groupMean.rate{iEL}(v,:);
valsSte = groupSte.rate{iEL}(iV,:);
switch plotType
case 'area'
p1 = area(xEdges, vals, 'FaceColor', colors{v}, ...
'EdgeColor', colors{v}, 'LineWidth', 1.5);
child = get(a1, 'Children');
set(child,'FaceAlpha',.5);
case 'line'
p1 = plot(xEdges, vals, 'Color', colors{v}, ...
'LineWidth', 1);
case 'shadedError'
p1 = shadedErrorBar(xEdges, vals, valsSte, colors{iV}, 1);
otherwise
error('plotType not recognized')
end
xlim([-90 90])
ylim([0 .08])
if iEL==2
legend(validityNames{v})
legend('boxoff')
end
if iV==1
title(targetNames{iEL})
end
end
xlabel('error in orientation report')
ylabel('p(error)')
end
rd_supertitle(sprintf('%s ', subjectIDs{:}));
rd_raiseAxis(gca);
%% save figs
if saveFigs
figNames = {'errorHistOverlay','errorHistSeparate'};
figPrefix = sprintf('gE3_N%d_run%02d', nSubjects, run);
rd_saveAllFigs(fig, figNames, figPrefix, [], '-depsc2')
end