How to create one errorbar for multiple data points?
2 views (last 30 days)
Show older comments
Hello,
i want to plot a x-vector (1,100) and a y-vector (1,100) with an errorbar. I have already calculated the single value for the standard deviation of the y-vector. This y-vector has been measured 100 times, so i just need one standard deviation for the 100 values of y.
I tried to do this with:
x = ones(1,100);
y = ...;
error = 4.17e-04;
errorbar(x,y,error,'.');
1 Comment
VBBV
on 3 Feb 2021
error variable must be of same size as x and y see the doc page https://in.mathworks.com/help/matlab/ref/errorbar.html
Accepted Answer
Daniel Pollard
on 3 Feb 2021
If I understand you right, could you do something like
figure; hold on
plot(x, y, 'bx')
errorbar(mean(x), mean(y), std(y), 'k+')
hold off
which I believe should plot all of your y values at x=1, and then overlay an errorbar centred at the mean point with a size equal to the standard deviation of y.
3 Comments
Daniel Pollard
on 3 Feb 2021
The code I gave you does two things. It plots each data point individually, which I specified as blue x's. In your case this plots the y values on a vertical line corresponding to x=1. Then, it plots an extra point: the mean value of y, against the mean value of x. mean(x) is just 1, but I left it like that so you can reuse the code for other data. mean(y) is the averge value of all of the y values. std calculates the standard deviation of the y values.
The hold command does a lot of work here too; when you call
hold on
it says to Matlab "keep plotting these things on the same figure until I call
hold off
which I do after. Otherwise when you call errorbar, it will overwrite the previous plot.
More Answers (0)
See Also
Categories
Find more on Errorbars in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!