У меня есть набор значений, и мне нужно, чтобы создать диаграмму Ганта из него значения, как этотPython график Ганта
1 0,000000 4,219309 4,219309 8,988674 8,988674 10,848450
2 4,219309 7,414822 7,414822 12,430150 12,430150 14,198310
3 8,000000 10,478795 10,478795 15,417747 15,417747 17,297929
1 11,000000 14,257995 14,257995 19,009302 19,009302 20,873072
2 14,257995 17,410029 17,410029 22,304447 22,304447 24,123009
3 18,000000 20,494690 20,494690 25,678852 25,678852 27,521070
1 21,000000 24,197839 24,197839 29,070650 29,070650 30,889371
2 24,197839 27,269837 27,269837 32,357236 32,357236 34,232483
4 27,269837 30,432503 30,432503 35,207464 35,207464 37,120424
1 31,000000 34,215182 34,215182 39,079631 39,079631 40,928846
3 34,215182 37,219774 37,219774 41,988526 41,988526 43,868911
2 37,219774 40,423759 40,423759 45,411568 45,411568 47,280815
1 41,000000 43,647413 43,647413 48,378227 48,378227 50,217919
Таким образом, первое значение представляет собой машину. Второе и третье время начала и окончания процесса А и т. Д. Со столбцами 4,5,6,7. Im, используя этот скрипт
import numpy as np
import matplotlib.pyplot as plt
# Read data from file into variables
cps, s_load, f_load, s_process, f_process, s_unload, f_unload = np.loadtxt('arena.txt', unpack=True)
# Map value to color
color_mapper = np.vectorize(lambda x: {1: 'red', 2: 'blue', 3: 'green', 4: 'black'}.get(x))
# Plot a line for every line of data in your file
plt.hlines(cps, s_load, f_load, colors=color_mapper(cps))
plt.show()
Но я хотел бы также различать цвета между процессом в той же машине, а не только между машинами