Jin_Errorbar.m 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. function [h, Mean, STD, STE] = Jin_Errorbar(x,y,varargin)
  2. % Example)
  3. % Width=0.3;
  4. % Color.color=53; Color.alpha=0.4;
  5. % h = JErrorbar(1,a.data1,Width,Color)
  6. if nargin == 2
  7. Width = 0.35;
  8. Color.color=4; Color.alpha=1;
  9. end
  10. if nargin == 3
  11. Color.color=4; Color.alpha=1;
  12. Width = varargin{1};
  13. end
  14. if nargin == 4
  15. Width = varargin{1};
  16. Color = varargin{2};
  17. end
  18. c=mapcolor(100,0);
  19. Mean=nanmean(y);
  20. STD=nanstd(y);
  21. STE=nanstd(y)/sqrt(length(y));
  22. x1=x-Width;
  23. x2=x+Width;
  24. y1=0;
  25. y2=Mean;
  26. % Box
  27. % h=fill([x1 x1 x2 x2],[y2 y1 y1 y2],[0.6 0.6 0.6]);
  28. h=fill([x1 x1 x2 x2],[y2 y1 y1 y2],c(Color.color,:));
  29. h.FaceAlpha=Color.alpha;
  30. h.Marker='none';
  31. h.EdgeColor='none';
  32. h.EdgeAlpha=0;
  33. % Line
  34. l1=line([x1 x1],[y2 y1],'LineWidth',0.6,'LineStyle','-'); l1.Color=[0 0 0];%l1.Color=c(Color.color,:);
  35. % l1=line([x1 x2],[y1 y1],'LineWidth',0.6,'LineStyle','-'); l1.Color=c(Color.color,:);
  36. l1=line([x1 x2],[y2 y2],'LineWidth',0.6,'LineStyle','-'); l1.Color=[0 0 0];%l1.Color=c(Color.color,:);
  37. l1=line([x2 x2],[y2 y1],'LineWidth',0.6,'LineStyle','-'); l1.Color=[0 0 0];%l1.Color=c(Color.color,:);
  38. % Std
  39. if Mean >= 0
  40. l1=line([x x],[Mean (Mean+STE)],'LineWidth',0.6,'LineStyle','-'); l1.Color=[0 0 0]; %l1.Color=c(Color.color,:);
  41. l1=line([(x-Width/3) (x+Width/3)],[(Mean+STE) (Mean+STE)],'LineWidth',0.6,'LineStyle','-'); l1.Color=[0 0 0]; %l1.Color=c(Color.color,:);
  42. elseif Mean < 0
  43. l1=line([x x],[Mean (Mean-STE)],'LineWidth',0.6,'LineStyle','-'); l1.Color=[0 0 0]; %l1.Color=c(Color.color,:);
  44. l1=line([(x-Width/3) (x+Width/3)],[(Mean-STE) (Mean-STE)],'LineWidth',0.6,'LineStyle','-'); l1.Color=[0 0 0]; %l1.Color=c(Color.color,:);
  45. end
  46. % for i=1:length(y)
  47. % p1=plot(GetJitter(x,0.1),y(i),'.'); p1.Color=[0.8 0.2 0.2];
  48. % end
  49. % g=gca;
  50. % g.YColor=[0 0 0];
  51. % g.LineWidth=0.6;