Я построил столбчатую диаграмму с накоплением (см. Здесь: https://imgur.com/a/ESJeHuF),, сформированный из приведенного ниже фрейма данных.
condition1 condition2 condition3
timestamp
2019-10-30 01:41:43 1.0 4.0 0.0
2019-10-30 01:50:11 1.0 2.0 4.0
2019-10-30 01:50:59 1.0 2.0 4.0
2019-10-30 01:51:36 1.0 2.0 4.0
2019-10-30 01:52:27 1.0 3.0 4.0
2019-10-30 01:53:10 2.0 4.0 0.0
2019-10-31 02:25:14 5.0 0.0 0.0
2019-10-31 04:15:54 5.0 0.0 0.0
Я бы хотел, чтобы цвета на гистограмме соответствовали их соответствующим значениямв кадре данных через этот список цветов:
color_list = ['r', 'g', 'b', 'm', 'k', 'k']
(например, если значение от 2-го до последнего временного шага равно 5, для окраски сегмента гистограммы с накоплением как 'k'
с таким поведением, повторяющимся для всех сегментов столбцов столбчатой диаграммы с накоплением.
Приведенный ниже код изображает столбцы с накоплением, однако изменяет их цвет (ссылка выше показывает это). Он назначает только первые три цвета всемзначения, где в Dataframe больше соответствующих цветов / значений. Правильный график должен иметь метки времени на оси x, а сегменты столбцов для каждого условия - правильные цвета.
import matplotlib.pyplot as plt
from matplotlib.cm import ScalarMappable
data_color = [0.,1.,2.,3.,4.,5.] #data range from conditions columns
data_color = [x / max(data_color) for x in data_color]
print(data_color)
custom_map = plt.cm.get_cmap('Accent') #one of the color schemas stored
custom = custom_map(data_color) #mapping the color info to the variable custom
print(custom)
fig = plt.figure()
ax = fig.add_subplot(111)
df.plot.bar(stacked=True, rot=1, legend=False, ax=fig.gca(), color=custom)
Буду очень признателен за любую помощь, заранее спасибо.