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

Matlab 如何创建直方图的直方图图?,matlab,plot,comparison,histogram,visualization,Matlab,Plot,Comparison,Histogram,Visualization,我使用两个脚本创建直方图,一个是matlabs自己的hist函数,另一个是我下载的脚本。我下载的脚本获取绝对最小值和最大值,并在两者之间生成直方图。但问题是,与MATLAB不同,此直方图不显示。我得到了一个向量 现在,为了直观地比较两者,我使用了绘图,但由于某些原因,比例发生了变化。例如,使用MATLAB的hist的直方图如下所示: 如果我在绘图中显示此柱状图,x轴比例会发生变化: 我怎样才能保持比例不变 我需要这个,因为下载的脚本不会生成直方图,所以要显示它,我使用plot。同样,绘图在0

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

现在,为了直观地比较两者,我使用了
绘图
,但由于某些原因,比例发生了变化。例如,使用MATLAB的
hist
的直方图如下所示:

如果我在
绘图中显示此柱状图
,x轴比例会发生变化:

我怎样才能保持比例不变


我需要这个,因为下载的脚本不会生成直方图,所以要显示它,我使用
plot
。同样,绘图在0和100之间,我觉得这可能不是一个准确的比较

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

%% 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);
在较新版本的MATLAB中,函数
hist
应替换为:

  • 直方图
    ,用于打印时(即
    hist
    无输出的情况)
  • histcounts
    ,用于计数时(即带有输出的
    hist

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

这是哪个版本的MATLAB?通常,您会使用
hist
(bin centers)的一个输出作为第二个绘图的
x
值,而不是仅使用
plot(counts)
进行绘图……我使用的是Matlab 2016A脚本应该告诉您bin边,或者更好的是,它用于构建直方图的bin centers。它能做到吗?@LuisMendo我在我的问题中添加了代码,不,它不能。我对它生成的输出很满意,但我也需要它像matlab那样显示谢谢,我不知道第二个输出。这修复了matlab输出。但是我不能再比较了,因为我正在使用的脚本(上面添加的)没有提供这样的第二次输出,当打印出来时,我再次得到一个介于0和100之间的打印。@StuckInPhD您不需要第二个脚本来输出任何其他内容。它只提供计数(
N
)。。。以及您应该已经从自己的
hist
中获得的职位(
X
)。谢谢@Dev il。我需要第二个脚本来生成一个固定的最小值和最大值之间的直方图,Matlab没有这个,每个直方图都适应自己的最小值和最大值。这两个直方图的形状和输出也非常不同。出于分类目的,所有直方图必须在固定刻度之间,例如-50和250之间。我找不到matlab的
hist