【问题标题】:How to show only the existing data points on x axis of bar graph in MATLAB?如何在 MATLAB 中仅显示条形图 x 轴上的现有数据点?
【发布时间】:2013-10-24 19:12:58
【问题描述】:

我需要在 MATLAB 中将 BA 简单绘制为条形图,但我不希望我的 x 轴完全显示从 1 到 274。我只需要在我的 x 上显示现有数据点轴,可以在 Excel 中轻松完成,如下图所示。 MATLAB 如何做到这一点?

A=[1    2   3   4   5   6   7   8   9   10  11  12  13  14  15  16  18  20  25  27  29  37  40  42  43  48  73  204 242 274];
B=[30   15  5   9   5   6   3   3   2   1   4   1   1   1   1   1   2   1   1   1   1   1   1   1   1   1   1   1   1   1];

【问题讨论】:

  • 您需要创建一个条形图bar(B),然后在x 轴上标记条形图set(gca,'xticklabel',A)。我认为必须将 A 转换为 char 单元格数组。

标签: matlab plot axis


【解决方案1】:

您需要同时设置'XTick''XTickLabel' 轴属性:

bar(B);
set(gca,'XTickLabel',A)
set(gca,'XTick',1:numel(A));
xlim([0 numel(A)+1]);

【讨论】:

    【解决方案2】:

    这是一个不优雅但仍然有效的解决您问题的方法:

    x = [1,4, 6, 7]; % Your data
    uni = unique(x)
    yMax = length(find(x == mode(x))) + 1;
    c = cell(1, length(uni));
    
    c = strread(num2str(uni),'%s')
    
    hist(1:length(uni));
    axis([0 length(uni) 0 yMax])
    set(gca, 'XTick', 1:length(uni));
    set(gca, 'XTickLabel', c);
    

    基本上,这会绘制直方图,就好像数据从 1 扩展到唯一元素的数量一样。然后,它在每个直方图值处设置刻度线。然后,它用正确的数字标记每个刻度线。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-28
      • 1970-01-01
      • 2019-05-14
      • 1970-01-01
      • 2021-12-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多