加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

MATLAB之errorbar(误差线)~~ by zn~~

(2010-07-09 09:32:35)
分类: MATLAB

关于errorbar

误差线:体现数据点置信水平和偏差

MATLAB中errorbar的使用

 example

#上下误差相等

X = 0:pi/10:pi;
Y = sin(X);
E = 0:0.05:0.5;
figure
errorbar(X,Y,E,'r');
hold on
plot(X,Y,'-mo',...
                'LineWidth',2,...
                'MarkerEdgeColor','k',...
                'MarkerFaceColor',[.49 1 .63],...
                'MarkerSize',12);
xlabel('x');ylabel('sin(x)');

http://s16/middle/636a8b1248aeb1f761f0f&690by zn~~" TITLE="MATLAB之errorbar(误差线)~~ by zn~~" />

#上下误差不相等

X = 0:pi/10:pi;
Y = sin(X);
L = 0:0.05:0.5;
U=0.5:-0.05:0;
figure
errorbar(X,Y,L,U,'r');
hold on
plot(X,Y,'-mo',...
                'LineWidth',2,...
                'MarkerEdgeColor','k',...
                'MarkerFaceColor',[.49 1 .63],...
                'MarkerSize',12);
xlabel('x');ylabel('sin(x)');

http://s9/middle/636a8b1248aeb601f2b88&690by zn~~" TITLE="MATLAB之errorbar(误差线)~~ by zn~~" />


误差棒端点拉长的问题(http://gerry.lamost.org/blog/?p=45

在Matlab中有个画误差棒的函数errorbar,用在对数坐标下时,则会出现误差棒端点拉长的问题,严重影响画面(如下图左半轴所示)。这个问题开始是在Matlab6.5中发现的,2006b中虽对此函数有所更新但并未解决这个问题。
幸运的是,这个函数没有嵌入内核,可以在命令窗口键入type errorbar ,直接察看其源代码。找到定义误差棒端点长度的地方

tee = (max(x(:))-min(x(:)))/100;
% make tee .02 x-distance for error bars
取误差棒端点大小为误差棒长度的2%
xl = x – tee; 计算左端点
xr = x + tee; 右端点

找对地方,改起来就很简单了,在对数坐标中,点A变成了logA,要取到同一点,将A变成10^A即可,后两行改为

xl = x/10^tee;
xr = x*10^tee;

改名保存到工作目录,直接调用,效果如下图右半轴。
如果在这里加上个判断,就可以直接去目录MATLAB\R2006b\toolbox\matlab\specgraph下替换原始文件了:)

 

http://gerry.lamost.org/upload/img/erro.jpgby zn~~" />

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有