24小时热门版块排行榜    

查看: 4180  |  回复: 10

疾凤劲草

铁杆木虫 (正式写手)

Entertainment

[求助] Matlab绘制误差棒(线)的线宽(起点与终点位置)问题已有2人参与

整个图我是先用matlab的bar函数画的柱状图,然后再用errorbar函数画的误差棒,但是不知道怎么修改误差棒图中误差线的上下限位置的长短,能够调短一点吗?已经超过每组柱状图的宽度了(柱状图的宽度不想再调宽了)
网上搜索有人说在命令窗口键入 type errorbar就能看到matlab自带errorbar函数的代码,然后以下几句代码中控制线的起点与终点位置的tee改一下,自己存为一个函数就行。
tee = (max(x(: ))-min(x(: )))/120;  % make tee .02 x-distance for error bars
xl = x - tee;
xr = x + tee;
可是我把120改成其他数字,然后另存为叫做errorbar(和matlab本身的函数名相同)的m文件存放在和我画图的m文件同一目录下,结果一运行自己的m文件或者该函数本身时就出现如下提示:
Error using errorbar (line 7)
Undefined function 'errorbarHGUsingMATLABClasses' for input arguments of type 'double'.
请问高手,该如何实现上述目标?谢谢!

Matlab绘制误差棒(线)的线宽(起点与终点位置)问题
误差棒图.png
回复此楼

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : errorbar.m
  • 2017-01-08 15:55:39, 6.37 K

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

pdl9527

专家顾问 (小有名气)

引用回帖:
5楼: Originally posted by 疾凤劲草 at 2017-01-09 17:30:23
我已经修改成功了,把你的下载下来了,而且不再用errorbar,而是改用supererr函数就行了,而且我的m文件目录下只需要放你给的superbar.m和supererr.m这两个文件。
另外问一下,您最后一句代码中,[]对应的项目表示 ...

那个是用来设定沿x轴方向的err,[]表示不赋值,这是个很强大的工具箱不仅可以画Y轴方向的误差线,还可以画X轴方向的,具体你可以打开supererr.m里面详细描述了每个参数的作用。
6楼2017-01-09 18:47:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

pdl9527

专家顾问 (小有名气)

引用回帖:
7楼: Originally posted by 疾凤劲草 at 2017-01-09 21:18:33
你太牛逼了,解决了我好久搞不定的问题,只能说我太菜鸟了,...

哈哈~那就来朵小红花吧

» 本帖已获得的红花(最新10朵)

8楼2017-01-09 21:36:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

chendequan

铁虫 (小有名气)

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
疾凤劲草: 金币+2, ★★★很有帮助 2017-01-09 16:03:53
直接改自带的后保存不会报错,不过没看到啥变化
QQ:516477448,真心帮助解决MATLAB相关问题,提供详细资料,Word文档明确具体问题及要求,尽力而为!
2楼2017-01-08 16:19:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

pdl9527

专家顾问 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
疾凤劲草: 金币+8, ★★★★★最佳答案 2017-01-09 17:28:16
首先下载superbar工具箱,解压后添加文件夹及其子文件夹到maltab文件路径下,下载地址如下。
CODE:
http://nl.mathworks.com/matlabcentral/fileexchange/57499-superbar

举个栗子,改变cap_width的值可以得到不同的errorbar横线宽度。
CODE:
function question_18
%2017-1-8
clear;clc
x = 0:pi/10:pi;
y = sin(x);
er = y/10;
cap_width=0.2;
supererr(x, y, [],er',cap_width)

3楼2017-01-08 18:17:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

疾凤劲草

铁杆木虫 (正式写手)

Entertainment

引用回帖:
2楼: Originally posted by chendequan at 2017-01-08 16:19:28
直接改自带的后保存不会报错,不过没看到啥变化

是的,我是直接用edit errorbar,把内置函数源文件中那个分母从最初的100改成了120 150 500 保存后运行画图程序都没有用,难道这个不是控制误差线起始点的?
4楼2017-01-09 16:05:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

疾凤劲草

铁杆木虫 (正式写手)

Entertainment

引用回帖:
3楼: Originally posted by pdl9527 at 2017-01-08 18:17:44
首先下载superbar工具箱,解压后添加文件夹及其子文件夹到maltab文件路径下,下载地址如下。
http://nl.mathworks.com/matlabcentral/fileexchange/57499-superbar
举个栗子,改变cap_width的值可以得到不同的err ...

我已经修改成功了,把你的下载下来了,而且不再用errorbar,而是改用supererr函数就行了,而且我的m文件目录下只需要放你给的superbar.m和supererr.m这两个文件。
另外问一下,您最后一句代码中,[]对应的项目表示啥参数输入?给个空的中括号是表示不赋值吗?
5楼2017-01-09 17:30:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

疾凤劲草

铁杆木虫 (正式写手)

Entertainment

引用回帖:
6楼: Originally posted by pdl9527 at 2017-01-09 18:47:10
那个是用来设定沿x轴方向的err,[]表示不赋值,这是个很强大的工具箱不仅可以画Y轴方向的误差线,还可以画X轴方向的,具体你可以打开supererr.m里面详细描述了每个参数的作用。...

你太牛逼了,解决了我好久搞不定的问题,只能说我太菜鸟了,
7楼2017-01-09 21:18:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

疾凤劲草

铁杆木虫 (正式写手)

Entertainment

送红花一朵
引用回帖:
8楼: Originally posted by pdl9527 at 2017-01-09 21:36:21
哈哈~那就来朵小红花吧...

来一朵小红花
9楼2017-01-10 11:08:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiaoqitao

新虫 (小有名气)

楼主能否共享下superbar.m和supererr.m这两个文件?
10楼2018-08-06 15:05:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 疾凤劲草 的主题更新
信息提示
请填处理意见