Need help plotting error bars to my data on a line plot

3 visualizaciones (últimos 30 días)
I'm having difficulty plotting error bars along the line plot of my data.
I'm getting the following error:
Error using errorbar>checkSingleInput (line 272)
YNegativeDelta must be empty or the same size as YData.
Error in errorbar (line 135)
yneg = checkSingleInput(neg, sz, 'YNegativeDelta');
Error in Experiment1_ParticipantLearningRate_Figure2 (line 41)
errorbar(y, eb_interval, allsubs_cond0_stderr)
Below is the script I'm using. For added context, allsubs_response_cond0_trials and allsubs_response_cond1_trials are both 120 x 40 matrices that represent the probability correct from 120 trials of 40 participants.
%%%Participant Learning Rate Figure%%%
load('Experiment1_Allsubs.mat')
%Creates Figure and plots data
figure; plot((smooth(mean(allsubs_response_cond0_trials, 2))),'LineWidth',2);
hold on
plot((smooth(mean(allsubs_response_cond1_trials, 2))),'LineWidth',2);
%Creates title
title('Participant Learning Curve')
%Creates legend in bottom-left corner
legend({'Concrete First','Abstract First'},'Location','southeast')
% Create ylabel
ylabel('Probability of Correct Response','FontSize',24,...
'FontName','Times New Roman');
% Create xlabel
xlabel({'Trial Number'},'FontSize',24,'FontName','Times New Roman');
% Defines participant learning rate standard error for each condition
allsubs_cond0_stderr = std(allsubs_p_correct_hist_cond0)./sqrt(length(allsubs_p_correct_hist_cond0));
allsubs_cond1_stderr = std(allsubs_p_correct_hist_cond1)./sqrt(length(allsubs_p_correct_hist_cond1));
%Transposes learning curve dimensions to compute error bars(changes 120x40
%to 40x120)
allsubs_response_cond0_trials = allsubs_response_cond0_trials';
allsubs_response_cond1_trials = allsubs_response_cond1_trials';
% Creates errorbars interval at every 10 trials along the x-axis from 10 to
% 120
eb_interval = 10:10:120;
% Creates point on y-axis along data to plot error bars. My intention here
% is to take the mean probability of correct of all 40 participants at each
% desired interval point.
y = mean((allsubs_response_cond0_trials(:,eb_interval)));
% Plots error bars
errorbar(y, eb_interval, allsubs_cond0_stderr)
%Formats current axis and current figure
set(gca, 'FontSize', 18, 'FontWeight', 'bold')
set(gcf, 'Color', 'w')
  2 comentarios
Star Strider
Star Strider el 15 de Ag. de 2021
The problem is that ‘allsubs_cond0_stderr’ is (1x40) and the other vectors in the errorbar call are (1x12). The other problem is that ‘eb_interval’ won’t work as an index into it (and similar vectors ) because they go from 10 to 120 in steps of 10, exceeding the size of the vector.
I am not certain what you are doing. All I can find is that (with synthetic matrices for ‘allsubs_response_cond0_trials’ and ‘allsubs_response_cond1_trials’) the vector lengths do not match, and I am at a loss as to how to make them match. There are also msssing variables.
Perhaps with the missing variables and actual data, this problem could be solved.
.
Ryan Gallagher
Ryan Gallagher el 15 de Ag. de 2021
This is a screen shot of the .mat file that is loaded in the beginning of the script. For clarification, "allsubs_response_cond0_trials" is the probability of correct for 120 trials and all 40 participants. The other variable you reference "allsubs_cond0_stderr" is the singular value representing the standard error calculated for each condition.

Iniciar sesión para comentar.

Respuesta aceptada

Shanmukha Voggu
Shanmukha Voggu el 3 de Sept. de 2021
Hi Ryan,
The error is due to the third argument of the errorbar function is not of the same size as the first argument.
The third argument allsubs_cond0_stderr is a constant and the first argument y is [1 x 12] matrix.
A possible fix that will resolve the error is to make the allsubs_cond0_stderr as [1 x 12] matrix (changing constant to matrix that has each and every value equal to constant)
% Plots error bars
allsubs_cond0_stderr=allsubs_cond0_stderr(ones(size(y)));% add this line above the errorbar function
errorbar(y, eb_interval, allsubs_cond0_stderr);
Refer to this for more information.

Más respuestas (0)

Categorías

Más información sobre Errorbars en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2020a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by