Crear Gantt Parcela con python matplotlib

¿Cómo es posible con matplotlib trazar un gráfico con esos datos? El problema es visualizar la distancia desde la columna 2 a la columna 3. Al final debe verse como un gráfico de tiempo de Gant.

0 0 0.016 19.833 1 0 19.834 52.805 2 0 52.806 84.005 5 0 84.012 107.305 8 0 107.315 128.998 10 0 129.005 138.956 11 0 138.961 145.587 13 0 145.594 163.863 15 0 163.872 192.118 16 0 192.127 193.787 17 0 193.796 197.106 20 0 236.099 246.223 25 1 31.096 56.180 27 1 58.097 64.857 28 1 64.858 66.494 29 1 66.496 89.908 31 1 89.918 111.606 34 1 129.007 137.371 35 1 137.372 145.727 39 1 176.097 209.461 42 1 209.476 226.207 44 1 226.217 259.317 46 1 259.329 282.488 47 1 282.493 298.905 

Necesito 2 colores para la columna 1. Y para el eje y se selecciona la columna 0, para el eje x la columna 2 y 3 son importantes. Para cada fila se debe trazar una línea. la columna 2 es la hora de inicio y la columna 3 es la hora de finalización.

Si lo he entendido correctamente, desea trazar una línea horizontal entre los valores de x de la 3ª y 4ª columna, con el valor de y igual al de la columna 0. Para trazar una línea horizontal en un valor de y dado entre dos x -Valores, podrías usar hlines . Creo que el siguiente código es una posible solución.

 import numpy as np import matplotlib.pyplot as plt # Read data from file into variables y, c, x1, x2 = np.loadtxt('data.txt', unpack=True) # Map value to color color_mapper = np.vectorize(lambda x: {0: 'red', 1: 'blue'}.get(x)) # Plot a line for every line of data in your file plt.hlines(y, x1, x2, colors=color_mapper(c)) 

La salida resultante

Puedes leer el archivo de texto usando numpy.loadtxt , por ejemplo, y luego matplotlib usando matplotlib . Por ejemplo:

 import numpy as np import matplotlib.pyplot as plt x, y = np.loadtxt('file.txt', usecols=(2,3), unpack=True) plt.plot(x,y) 

Debería ver la documentación de matplotlib para más opciones.