首页 文章

绘图直方图(更改轴)

提问于
浏览
0

我有n * 2矩阵,例如矩阵A.第一列是一些索引,第二列是直方图 . 我想只显示非零直方图,所以,我过滤了A并删除了直方图为零的索引 . 我用

bar(A(:,1),A(:,2))

我没有使用excel . 我怎样才能在excel中绘制它?

这是我的数据(所以我想只显示这个矩阵的元素,但是如图所示,它显示从零到x轴的所有索引,我想只显示x轴中非零值的索引)

1   0.0573770000000000
    2   0.622951000000000
    3   0.0819672000000000
    4   0.0491803000000000
    5   0.0409836000000000
    6   0.00819672000000000
    7   0.00819672000000000
    8   0.0163934000000000
    10  0.00819672000000000
    12  0.00819672000000000
    14  0.00819672000000000
    19  0.0163934000000000
    34  0.00819672000000000
    50  0.00819672000000000
    54  0.00819672000000000
    62  0.00819672000000000
    175 0.00819672000000000
    410 0.00819672000000000
   1178 0.00819672000000000
   1193 0.00819672000000000
   1669 0.00819672000000000

它具有非常糟糕的可视化 . 在matlab中是否可能,或者我应该使用其他软件?
My data

Roney的结果在我的数据中回答 . (我希望我的数据中的真实标签位于x轴的每个条形下方 . )

The result of Roney answer

谢谢

1 回答

  • 2

    如果您的意思是要显示非零条形,而零值之间没有间隙,则可以执行以下操作:

    >> non_zero = A(:,2) ~= 0;
    >> bar(A(non_zero,2))
    >> set(gca, 'XTick', 1:sum(non_zero));    %New code.
    >> set(gca, 'XTickLabel', num2str(A(non_zero,1)));
    

    比如说,

    >> 
    A = [
    1 0.001
    2 0.005
    4 0
    5 0.003
    ];
    

    结果将是:

    enter image description here

    对于您的数据,结果将是:

    enter image description here

相关问题