3

我在 Matlab 中遇到了一个大问题,因为我似乎想做一些不太常见的事情。

基本上,我正在尝试实现一种称为 Vincentizing 的组分布方式。为了做到这一点,我遵循了一篇论文(Ratcliff 1979 - Group Reaction Time Distributions and an Analysis of Distribution Statistics)的说明。一切都很好,直到我必须绘制实际的图表。我有一个数组,其中包含我的数据集的分位数。我正在关注的教程说:

分布直方图可以通过在横坐标上绘制分位数,然后在相邻分位数之间构建矩形,使所有矩形具有相等的面积来构建,如图 2 所示(下图链接)

http://postimg.org/image/btftrd6y7/

计算完分位数后,我可以将区域设置为某个值,比如 10,因此我可以计算每个条的高度。每个条的宽度是两个相邻分位数之间的距离,当然我也可以计算出来。我有我需要的所有信息,但我不知道如何绘制图表。在 matlab 中,如何像图中的那样绘制我的图形?(似乎我可以绘制不同宽度的直方图,但是使用 hist 函数我实际上无法指定高度。但是,使用 bar 函数,我可以指定高度,但似乎我无法更改宽度..)

感谢您的每一次帮助。

4

1 回答 1

3

最简单的解决方案是使用rectangle

% sample data: set the start of each bar, the bottom (here 0), the width and the height

x = [0.5 0.6 0.9 1 1.2]; % start of bar
y = zeros(length(x),1);
dx = diff([x 1.8]); % width of bar
dy = [1 3 2 .5 .1];


figure, hold on
for ii=1:length(x)
    rectangle('position',[x(ii) y(ii) dx(ii) dy(ii)])
end
axis([0.5 2 0 4.1])

ylabel('Prob density')
xlabel('Time')

在此处输入图像描述

于 2013-08-24T14:42:04.543 回答