【问题标题】:Adding breakpoints on the x-Axis of Histogram MATLAB在直方图 MATLAB 的 x 轴上添加断点
【发布时间】:2015-06-08 15:55:04
【问题描述】:
OT = [124 124 124 125 125 125 126 249 249 250 250 250 312 312 312 438]
MYBINS = min (OT) : max(OT);
hist (OT,MYBINS);

我想绘制OT 的直方图,并将我的 bin 从min(OT) 设置为max (OT)。由于元素彼此相距很远,我的直方图条非常小。

我只是想知道如何修改 x 轴,例如,它只会显示彼此相邻的 OT 值,例如 124,125,126,249,250,312,438,并在它们的顶部有相应的条,而不是跨越整个x 轴。

更新:使用下面的代码,我可以得到精确值上方的条形,下面写着值,我只是想知道如何在 x 轴上的远值之间添加中断?

OTU = unique (OT);
OTUS = sort (OTU);
MYBINS = (OTUS);
hist (OT,MYBINS);

这是正常的外观,但我希望将条形图彼此相邻,并在其下方具有相应的值,以便条形图更大且更易于查看

【问题讨论】:

    标签: arrays matlab histogram


    【解决方案1】:

    如果您只是从 hist 函数中获取数据,您可以用其他更灵活的方式绘制它。这更像你想要的吗?

    OT = [124 124 124 125 125 125 126 249 249 250 250 250 312 312 312 438]
    binVals = unique(OT);
    histVals = hist(OT, binVals);
    bar(1:length(histVals), histVals);
    set(gca,'XTickLabel', mat2cell(binVals));
    

    【讨论】:

    • 谢谢 效果很好 我只是有一个小问题。所以 OT 是一个数组,但如果我想让多个数组的历史数据彼此相邻,我使用:OT = [124 124 124 125 125 125 126 249 249 250 250 250 312 312 312 438]; OT1 = [124 124 124 124 124 124 125 125 125 125 125 126 126 126 126 249 249 250 250 250 312 438 438 438]; binVals = 独特的(OT); histVals = hist(OT, binVals); histVals1 = hist(OT1, binVals);条(1:长度(histVals),[histVals;histVals1]');设置(gca,'XTickLabel',mat2cell(binVals));只要 OT 和 OT1 都包含彼此的至少一个元素,这将起作用
    • 如果我从 OT1 中删除 250,它将不再起作用,就是这样。我有 2 个不同的数组,通常它们包含所有点,但有些缺少 1 或 2 个点,这会给我“连接的矩阵的维度不一致”错误。
    • 由于某种原因,我的 MATLAB 版本没有给出我的错误。您可能需要 binVals 来包含两个数组中的值 (binVals = unique([OT, OT1]);)
    • 你的代码太棒了,我犯了一个愚蠢的错误!!非常感谢:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-17
    • 1970-01-01
    • 1970-01-01
    • 2021-10-24
    • 2011-12-26
    • 1970-01-01
    相关资源
    最近更新 更多