Я использую Plotly для построения диаграммы Ганта:
fig = ff.create_gantt(df, index_col='Resource', show_colorbar=True, group_tasks=True)
Когда индекс в
index_col='Resource'
превышает 10 появляется ошибка:
plotly.exceptions.PlotlyError: Ошибка. Количество цветов в «цветах» должно быть не меньше количества уникальных значений индекса в столбце вашей группы.
Я думаю, это связано с тем, что цвета Plotly по умолчанию ограничены десятью различными цветами (например, Список цветов Plotly )
Я хочу иметь больше цветов (>= index of 'Resource'
). Как я могу добавить и определить их?
Edit:
Вот пример, который можно использовать для тестирования
from __future__ import print_function
from collections import defaultdict
from plotly.offline import plot
import plotly.figure_factory as ff
import pandas as pd
from pandas import ExcelWriter
from pandas import ExcelFile
import datetime
def gantt_test():
"""Solve a small flexible jobshop problem."""
# convert to date
serial = 43466.0 # 01.01.2019 Excel
seconds = (serial - 25569) * 86400.0 # convert to seconds
date_date = datetime.datetime.utcfromtimestamp(seconds)
date_string = date_date.strftime("%Y-%m-%d %H:%M:%S")
df = [dict(Task="machine_99", Start=0, Finish=1, Resource="job_99")]
df.clear()
start_value = 0 # in min
duration = 120 # in min
for i in range(1, 12):
b_dict = dict(Task="M " + str(i), Start=datetime.datetime.utcfromtimestamp((serial - 25569 + (start_value/(60*24.0))) * 86400.0).strftime("%Y-%m-%d %H:%M:%S"), Finish=datetime.datetime.utcfromtimestamp((serial - 25569 + (start_value +duration)/(60*24.0)) * 86400.0).strftime("%Y-%m-%d %H:%M:%S"), Resource="job " + str(i))
df.append(b_dict)
start_value = 10*i
fig = ff.create_gantt(df, index_col='Resource', show_colorbar=True, group_tasks=True)
plot(fig, filename='gantt-group-tasks-together.html')
gantt_test()
Если вы измените
for i in range(1, 12):
до
12
это работает: