如何创建直方图的直方图?

时间:2017-03-07 16:11:25

标签: matlab plot comparison histogram visualization

我使用两个脚本创建直方图,一个是matlabs自己的hist函数,另一个是我下载的脚本。我下载的脚本采用绝对最小值和最大值,并在其间生成直方图。但问题是,与MATLAB不同,此直方图不会显示。我收到了一个矢量。

现在比较两个我在使用plot的视觉效果,但由于某种原因,比例会发生变化。例如,使用MATLAB的hist的直方图如下所示:

enter image description here

如果我在plot中显示此直方图,则x轴刻度会发生变化:

enter image description here

如何保持比例相同?

我需要这个,因为下载的脚本不生成直方图,所以要显示它我使用plot。情节再次介于0和100之间,我觉得这可能不是一个准确的比较

2 个答案:

答案 0 :(得分:4)

您似乎没有使用所有可用信息。请参阅下面的代码,了解如何完成您的工作:

%% Generate some data:
rng(42653042);
data = randn(300); data = (data-min(data(:)))*90+100;
data(1:4:end) = data(1:4:end)/2;
%% Plot using hist:
figure(); hist(data(:),100);
%% Return bin info using hist:
[N,X] = hist(data(:),100);
%% Plot the other function's output w/o X:
figure(); plot(N);
%% Plot the other function's output w/ X:
figure(); plot(X,N);
figure(); bar(X,N);

函数hist应该在较新版本的MATLAB中替换为:

  • histogram,用于绘图时(即hist没有输出的情况)。
  • histcounts,当用于计数时(即带有输出的hist的情况)。

答案 1 :(得分:3)

使用“n = hist(Y,x),其中x是向量,返回长度(x)区间中Y的分布,其中心由x”指定,以指定区间中心。