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