2010-07-30 25 views
6

Al final de algunos procesamientos de datos en MATLAB, quiero crear un gráfico que muestre las barras de línea de tiempo coloreadas para una serie de datos. Tengo un número de procesos que cada uno pasa por pasos similares, y comienza y se detiene y diferente en diferentes momentos. Lo ideal sería que acabaría buscando algo como esto (valga la arte ASCII):Creación de un gráfico de estilo de "línea de tiempo" en MATLAB

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

Dónde #* y $ están de pie para ladrillos macizos, adyacentes de diferentes colores (un color por paso los procesos pasan por; tenga en cuenta que algunos son opcionales).

Las etiquetas pueden estar en otro lugar, pero al lado de cada línea es bueno.

He pirateado una solución usando rectangle y text, pero parece que este podría ser un tipo de diagrama existente dentro de MATLAB que aún no he encontrado. ¿Conoces uno?

Respuesta

9

Use barh. Establezca la primera columna como su tiempo de proceso inicial

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: Muy bonito, aunque podría hacer una pequeña modificación. El color de fondo de los ejes suele ser blanco por defecto, pero en caso de que no lo esté, puede hacerlo en su lugar: 'axesColor = get (gca, 'Color'); set (h (1), 'FaceColor', axesColor, 'EdgeColor', axesColor); ' – gnovice

+2

@gnovice: simplemente puede establecer los colores como' 'none'' – Amro

+0

@Aro: Ah sí. Me olvidé totalmente que eso funcionaría en los gráficos de barras. Esa es una mejor alternativa. – gnovice

Cuestiones relacionadas