在MATLAB中的一些数据处理结束时,我想创建一个图表,显示一系列数据的彩色时间轴条。我有许多流程,每个流程都经历类似的步骤,并且在不同的时间启动和停止并且不同。理想情况下,它最终看起来像这样(原谅ASCII艺术):
| ###***$$$$$$$$$$ Process 1 | ###***$$$$$$$ Process 2 | ###$$$$$ Process 3 | *******$$$$$$ Process 4 +------------------------------------------ Time
#
*
和$
代表不同颜色的固定相邻块(每个步骤一个颜色,流程经过;注意一些是可选的)。
标签可能在其他地方,但每条线旁边都很好。
我使用rectangle
和text
将解决方案整合在一起,但似乎这可能是MATLAB中现有的一种我尚未发现的情节。你知道吗?
答案 0 :(得分: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