matlab中,绘制二维直方图的函数是bar,绘制三维直方图的函数是bar3,以下分别列出其用法:
调用格式:bar(x,y,选项) ,其中,x,y是维数相同的矩阵或者向量,配对的x,y按对应的列元素为横纵坐标绘制,选项是一些绘图控制选项,可选;
例如,绘制y=2exp(-0.5x)的条形图
bar3(x,y)或者bar3(y),前者在x指定的位置上绘制y中元素的条形图,后者y的每一个元素对应于一个条形。
或者在matlab下边输入
help
imhist
edit
histeq
clc
clear
fn='rice.tif'
i=imread
(fn)
j=i
%计算灰度图象的直方图数据
l=256
%灰度级
ps
=
zeros(l,1)
%统计直方图结果数据
nk=zeros(l,1)
[row,col]=size(i)
n=row*col
%总像素个数
for
i
=
1:row
for
j
=
1:col
num
=
double(i(i,j))+1
%获取像素点灰度级
nk(num)
=
nk(num)+1
%统计nk
end
end
%计算直方图概率估计
for
i=1:l
ps(i)=nk(i)/n
end
figure
subplot(3,1,1)imshow(j),title('原图')
subplot(3,1,2),plot(nk),title('直方图(nk)')
subplot(3,1,3),plot(ps),title('直方图(ps)')
%figure(4),imhist(hist)
%p=imhist(hist)
%生成直方图函数,返回灰度图象直方图数据
%figure(5),plot(p)
我觉得有两种方法,一种是调节条形的宽度。估计是'barwidth'
另一种我们可以调节XTick的数值,比如原来是1、2、3、4。我们设置成1、3、5、7.这样间隔就变宽了。然后在用XTickLabel命名一下X轴就可以了。
不知道怎么样,这是我的设想
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)