【问题标题】:matlab histogram plotting: setting specific x-axis labelmatlab直方图绘图:设置特定的x轴标签
【发布时间】:2018-05-25 10:21:02
【问题描述】:

我有一个 16 x 16 的 data.txt,我想绘制成直方图以获取频率计数:

cd C:\User\Aisk_000\Desktop\A\NC\Subjects\2414A\
A = dlmread('data.txt');

% Upper tri, removing 0's and repeated values
% Histogram plots
a = triu(A)
a=a'
a(a==0) = []
aA = a

histogram(aA)
title('Normal count distribution')

目前 x 轴设置为多个 bin,但是有没有办法将 x 轴的每个点设置为相应的值?就像 x 轴的第一个点将被称为 (1,1),第二个点是 (1,2)... 等等。由于我使用了triu 函数,x 轴上应该有 120 个点,而 y 轴仍然作为频率计数。这个图表可以让我从中获得更多的空间信息。

**我检查了网站上的直方图属性,但对于我应该使用哪一个感到非常困惑

【问题讨论】:

  • 那么,您想获取每个 bin 的频率,并希望通过 var(1,1) 等方式访问该 bin?对吗?
  • 我希望实际的 x 轴在每个点都有标签,例如 (1,1)、(1,2)、(1,3).. 等等。至于 y 轴,它将是一组数字,(1,1) 的值将落入其中。很抱歉造成混乱。
  • 本质上,我想要 x 轴上的实际点(例如,(1,1) 是 16 x 16 矩阵中的第一个单元格),而 y 轴只是来自 ( 1,1)。抱歉,如果我不能很好地解释,英语不是我的母语

标签: matlab histogram


【解决方案1】:

您可以使用以下内容:

nbin = 30;
[y,x] = hist(aA, nbin);
plot(x,y); 
ylim([0, max(y)])

y 将是每个 bin 中的元素数,x 将是每个 bin 的中心。您可以通过x(1) 访问第一个bin,其频率将为y(1)/sum(y)y(1)/numel(aA)。请注意,我在上面的代码中将箱数 (nbin) 设置为 30。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-07
    • 1970-01-01
    • 1970-01-01
    • 2017-02-24
    • 2021-12-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多