Я пытаюсь построить график Ганта. Я новичок в python и не знаком с передовыми концепциями программирования. При запуске кода я получаю показанную ошибку.Векторизация в python в следующем коде
import numpy as np
import matplotlib as mpl
import pylab as plt
arr=np.loadtxt('gantt.csv',dtype=float,delimiter=",")
colormapd = {
1:"r",
2:"g",
3:"b",
4:"y",
5:"m",
6:"k",
7:"r",
8:"g",
9:"b",
0:"y",
}
therange=range(500,2500)
jobnum= arr[therange,0].astype(int)
macnum= arr[therange,2].astype(int)
procstart = arr[therange,3]
procfinish = arr[therange,4]
for i in range(500,2500):
plt.hlines(macnum[i],procstart[i],procfinish[i],colors = colormapd[1])
plt.show()
Ошибка:
IndexError: index 2000 is out of bounds for axis 0 with size 2000
Я думаю, что мне нужно, чтобы иметь возможность векторизации (jobnum% 10) массив, используемый для доступа к словарю.
plt.hlines(macnum,procstart,procfinish,colors = colormapd[jobnum%10])
Я могу запустить:
plt.hlines(macnum,procstart,procfinish)
Но я хочу, чтобы изменить цвет линий в соответствии с jobnumbers. У меня 2500 рабочих мест. Любой другой метод создания диаграммы Ганта, если лучше, можно было бы предложить.
Вы пытались заменить 'for i в диапазоне (500,2500):' with 'for i in range (2000):'? – bbkglb