Создание графики стиля «timeline» в MATLAB - PullRequest
6 голосов
/ 30 июля 2010

В конце некоторой обработки данных в MATLAB я хочу создать график, который показывает цветные шкалы времени для ряда данных. У меня есть ряд процессов, каждый из которых проходит через одинаковые этапы, запускается и останавливается и отличается в разное время. В идеале это выглядело бы примерно так (простите за искусство ASCII):

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

Где # * и $ означают сплошные смежные блоки разных цветов (один цвет на шаг, через который проходят процессы; обратите внимание, что некоторые из них необязательны).

Метки могут быть в другом месте, но рядом с каждой строкой все хорошо.

Я взломал решение, используя rectangle и text, но кажется, что это может быть существующий тип графика в MATLAB, который я просто еще не нашел. Вы знаете одного?

1 Ответ

9 голосов
/ 30 июля 2010

Используйте 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...