2010-07-30 4 views
6

MATLAB의 일부 데이터 처리가 끝나면 일련의 데이터에 대해 색이 지정된 타임 라인 막대를 표시하는 플롯을 작성하려고합니다. 저는 각각 비슷한 단계를 거치며 시작과 멈춤 그리고 다른 시간에 다른 여러 가지 과정을 가지고 있습니다. 이상적으로는이 같은 (아스키 아트를 용서)을 찾고 끝장 : #*$가 서로 다른 색상 (단계 당 하나의 색의 고체, 인접한 블록에 서MATLAB에서 '타임 라인'스타일 그래픽 만들기

 
    | ###***$$$$$$$$$$   Process 1 
    |  ###***$$$$$$$  Process 2 
    |   ###$$$$$   Process 3 
    |    *******$$$$$$ Process 4 
    +------------------------------------------ 
        Time 

프로세스가 통과; 일부는 선택 사항 임).

레이블은 다른 곳에있을 수 있지만 각 줄 옆에는 좋을 수 있습니다.

나는 rectangletext을 사용하여 솔루션을 해킹했지만, 아직 발견하지 못했던 MATLAB 내의 기존 유형의 플롯일지도 모릅니다. 너는 그걸 알고 있니?

답변

9

barh을 사용하십시오. 첫 번째 열을 초기 프로세스 시간으로 설정하십시오.

data_with_init_time = [ 
     1, 10, 5, 3 ; 
     3, 10, 3, 9 ; 
     7, 10, 4, 8 ; 
     12,10, 2, 2 ]; 

h = barh(data_with_init_time, 'stack'); 
set(h(1), 'facecolor', 'none', 'EdgeColor', 'none'); % disable the color of the first column (init time) 
set(gca, 'YTickLabel', {'proc 1', 'proc 2', 'proc 3', 'proc 4'}); % change the y axis tick to your name of the process 
axis ij; % Put the first row at top 
+1

+1 : 하나의 작은 수정을 가할 수는 있지만 아주 좋습니다. 축의 배경색은 기본적으로 흰색이지만 대개의 경우 다음과 같이 할 수 있습니다 :'axesColor = get (gca, 'Color'); – gnovice

+2

@gnovice : 단순히 색상을 ''none '으로 설정하면됩니다. – Amro

+0

@Amro : 아 맞습니다. 막대 그래프에서 작동한다는 것을 완전히 잊어 버렸습니다. 그것은 더 나은 대안입니다. – gnovice

관련 문제