2013-05-11 2 views
0

예를 들어 행렬 A의 첫 번째 열은 인덱스이고 두 번째 열은 히스토그램입니다. 0이 아닌 히스토그램 만 시각화하고 싶기 때문에 A를 필터링하고 A를 삭제했습니다. 히스토그램이 0 인 색인. 나는 사용한다플롯 히스토그램 (축 변경)

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

나는 엑셀을 사용하지 않았다. 그것을 어떻게 능률적으로 표현할 수 있습니까?

이것은 내 데이터입니다. (이 매트릭스의 요소 만 표시하고 싶지만 그림에서 볼 수 있듯이 0부터 끝까지의 모든 인덱스를 x 축에 표시하고 0이 아닌 값의 인덱스 만 표시하려고합니다 축)

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 대답의 결과. (I는 x 축에서 각 막대 아래에있는 내 데이터로부터 실제 라벨을합니다.)

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