注册 登录
编程论坛 Matlab

求助用matlab画直方图

wuxia 发布于 2010-03-17 10:45, 10412 次点击
A=[311 345 480 665 1039]

我想在178-250;250-353;353-500;500-707;707-1000;1000-1414,,每个区间上统计A中的点出现的频数,并且,要求画直方图时,直方图在我指的定的那些区间上,而且,直方图,要粗细一致,颜色不一样!请高手帮忙!
11 回复
#2
hitzhang2010-03-17 11:32
可以结合bar和hold on
#3
wuxia2010-03-17 11:40
回复 2楼 sheji520
真是对不起,我试了好多次,都没有成功!能不能帮我试试?
#4
wuxia2010-03-17 11:41
回复 3楼 hitzhang
我试了几次,都没有成功,新手上路,还请多多帮助!
#5
wting_11202010-03-17 17:25
用hist试试看,应该可以的
#6
wuxia2010-03-17 17:26
回复 5楼 wting_1120
这个也试了,没有做出来!呵呵
#7
_l_2010-03-17 18:48
A=[311 345 480 665 1039];
n=hist(A,[214 301.5 426.5  603.5 853.5 1207]);
n=diag(n);
bar(n,'stack');
这样画出的图凑合用吧
#8
wuxia2010-03-18 09:07
回复 7楼 _l_
谢谢你,但是,画出的图,不在我指定的区间呀!呵呵,不过,仍然十分感谢你!
#9
mywaylgh2010-03-18 09:15
用subplot
#10
wuxia2010-03-18 09:56
回复 9楼 mywaylgh
我想在一个图中,就把意思表达清楚,用其所长subplot,那是在一幅图中,有多幅小图了吧?是不是这样,我是新手,不是很明白?
#11
_l_2010-03-18 15:55
如果要显示在对应的区间,可以手动用set命令把坐标轴的显示改成对应的区间,如下:
A=[311 345 480 665 1039];
n=hist(A,[214 301.5 426.5  603.5 853.5 1207]);
n=diag(n);
bar(n,'stack');

set(gca,'XTickLabel',{'178-250','250-353','353-500','500-707','707-1000','1000-1414'});


#12
mywaylgh2010-03-19 14:58
以下是引用_l_在2010-3-18 15:55:09的发言:

如果要显示在对应的区间,可以手动用set命令把坐标轴的显示改成对应的区间,如下:
A=[311 345 480 665 1039];
n=hist(A,[214 301.5 426.5  603.5 853.5 1207]);
n=diag(n);
bar(n,'stack');

set(gca,'XTickLabel', ...
1