2013-05-11 5 views
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 в моих данных. (Я хочу, чтобы реальный ярлык из моих данных ниже каждой полосы в оси х.)

The result of Roney answer

Благодаря

ответ

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

+0

Спасибо. ваш пример верен, но он не работает для моих данных. Я добавляю свои данные к вопросу. – Fatime

+0

@Fatime: Я добавил дополнительную строку в свой код. Теперь он должен хорошо работать. –

+0

Спасибо, он работает. Но эти ярлыки имеют плохую визуализацию. Могу ли я изменить метку оси x по вертикали для лучшей визуализации? – Fatime