How to plot error bars on multiple data sets on an arrhenius plot?

Hi! I am trying to plot error bars for each individual data point for the figure shown below. I imported an excel file and these are already the averages of the values for each point. I have calculated the standard deviations, but now need to add the error bar to each point. The code I used is shown below, in which I also had to do line fits for my data set. I need a deviation point for each y value. Any help is appreciated! Thanks!
%Enter file name here f = 'arrhenius_loading_comparison4x.xlsx';
%5 VOL% Avg 4X low sheetName = '5vol4xavg'; x_1 = xlsread(f, sheetName,'M7:M10'); y_1= xlsread(f, sheetName,'N7:N10'); %5 VOL% Avg 4X high sheetName = '5vol4xavg'; x_2 = xlsread(f, sheetName,'M4:M7'); y_2= xlsread(f, sheetName,'N4:N7');
%10 VOL % cell 2 low sheetName = '10vol2_4x'; x_3 = xlsread(f, sheetName,'F7:F10'); y_3= xlsread(f, sheetName,'I7:I10'); %10 VOL % cell 2 high sheetName = '10vol2_4x'; x_4 = xlsread(f, sheetName,'F4:F7'); y_4= xlsread(f, sheetName,'I4:I7');
%25volcell avg (4x)low sheetName = '25vol4xavg'; x_5 = xlsread(f, sheetName,'M6:M9'); y_5= xlsread(f, sheetName,'N6:N9'); %25volcell avg (4x)high sheetName = '25vol4xavg'; x_6 = xlsread(f, sheetName,'M3:M6'); y_6= xlsread(f, sheetName,'N3:N6');
%50 VOL% cell 4x Avg low sheetName = '50vol4xavg'; x_7 = xlsread(f, sheetName,'M7:M10'); y_7= xlsread(f, sheetName,'N7:N10'); %50 VOL% cell 4x Avg low sheetName = '50vol4xavg'; x_8 = xlsread(f, sheetName,'M4:M7'); y_8= xlsread(f, sheetName,'N4:N7');
figure(1) %yyaxis left plot(x_1, y_1, 'b.', x_3, y_3, 'r.', x_5, y_5, 'g.', x_7, y_7, 'k.', x_2, y_2, 'b.', x_4, y_4, 'r.', x_6, y_6, 'g.', x_8, y_8, 'k.','MarkerSize',18);
c = polyfit(x_1, y_1,1); % Display evaluated equation y = m*x + b disp(['Equation is y = ' num2str(c(1)) '*x + ' num2str(c(2))]) % Evaluate fit equation using polyval y_est = polyval(c,x_1); % Add trend line to plot hold on plot(x_1,y_est,'b-','LineWidth',1) hold off
c = polyfit(x_2, y_2,1); % Display evaluated equation y = m*x + b disp(['Equation is y = ' num2str(c(1)) '*x + ' num2str(c(2))]) % Evaluate fit equation using polyval y_est = polyval(c,x_2); % Add trend line to plot hold on plot(x_2,y_est,'b-','LineWidth',1) hold off
c = polyfit(x_3, y_3,1); % Display evaluated equation y = m*x + b disp(['Equation is y = ' num2str(c(1)) '*x + ' num2str(c(2))]) % Evaluate fit equation using polyval y_est = polyval(c,x_3); % Add trend line to plot hold on plot(x_3,y_est,'r-','LineWidth',1) hold off
c = polyfit(x_4, y_4,1); % Display evaluated equation y = m*x + b disp(['Equation is y = ' num2str(c(1)) '*x + ' num2str(c(2))]) % Evaluate fit equation using polyval y_est = polyval(c,x_4); % Add trend line to plot hold on plot(x_4,y_est,'r-','LineWidth',1) hold off
c = polyfit(x_5, y_5,1); % Display evaluated equation y = m*x + b disp(['Equation is y = ' num2str(c(1)) '*x + ' num2str(c(2))]) % Evaluate fit equation using polyval y_est = polyval(c,x_5); % Add trend line to plot hold on plot(x_5,y_est,'g-','LineWidth',1) hold off
c = polyfit(x_6, y_6,1); % Display evaluated equation y = m*x + b disp(['Equation is y = ' num2str(c(1)) '*x + ' num2str(c(2))]) % Evaluate fit equation using polyval y_est = polyval(c,x_6); % Add trend line to plot hold on plot(x_6,y_est,'g-','LineWidth',1) hold off
c = polyfit(x_7, y_7,1); % Display evaluated equation y = m*x + b disp(['Equation is y = ' num2str(c(1)) '*x + ' num2str(c(2))]) % Evaluate fit equation using polyval y_est = polyval(c,x_7); % Add trend line to plot hold on plot(x_7,y_est,'k-','LineWidth',1) hold off
c = polyfit(x_8, y_8,1); % Display evaluated equation y = m*x + b disp(['Equation is y = ' num2str(c(1)) '*x + ' num2str(c(2))]) % Evaluate fit equation using polyval y_est = polyval(c,x_8); % Add trend line to plot hold on plot(x_8,y_est,'k-','LineWidth',1) hold off
xlabel ('1000/T (K)', 'FontSize', 12) ylabel ('log(\sigma) s/cm', 'FontSize',12) legend ('5 vol%', '10 vol%', '25 vol%', '50 vol%')
legend boxoff

5 件のコメント

Brice Harkey
Brice Harkey 2018 年 11 月 7 日
Hi Madhan, thanks for your link.
I have tried this for my data set, but it keeps throwing me an error or doesn't plot it correctly. any thoughts??
the cyclist
the cyclist 2018 年 11 月 7 日
The errorbar command is certainly the canonical way to do this. Can you post the code that throws an error and/or indicate what "doesn't plot it correctly" means exactly? It's presumably just a syntax problem.
You could take a look at the MATLAB Plot Gallery for a working example.
Brice Harkey
Brice Harkey 2018 年 11 月 7 日
Sure! The error is
Error using errorbar>checkSingleInput (line 266) YNegativeDelta must be empty or the same size as YData.
Error in errorbar (line 135) yneg = checkSingleInput(neg, sz, 'YNegativeDelta');
Error in arrhenius_loading_5_50 (line 132) errorbar(y_1, err)
the cyclist
the cyclist 2018 年 11 月 10 日
You posted the error, which is helpful, but not the code that throws that error.
It would be enough (and probably easier to debug) if you post
  • the line where you call errorbar
  • a MAT file containing the input variables you used

サインインしてコメントする。

回答 (0 件)

質問済み:

2018 年 11 月 7 日

コメント済み:

2018 年 11 月 10 日

Community Treasure Hunt

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

Start Hunting!

Translated by