Как построить горизонтальную полосу в л oop, чтобы изменить цвет на основе значения в другом столбце - PullRequest
0 голосов
/ 19 апреля 2020

Мне нужно построить график времени (временная метка) в сравнении с пространством (intersectionId) одной горизонтальной гистограммы в matplotlib. Цвет панели будет меняться через определенные промежутки времени на основе другого столбца, который будет currState. Цвета будут красные, зеленые, желтые. Я пытался создать словарь цветов и значений, но не знал, как использовать их в l oop для изменения цвета в зависимости от значения. Я приложил образец CSV ниже вместе с кодом и тем, что я пытаюсь достичь и что я написал до сих пор.

category_colors = { 'red' : [2,3] , 'yellow' : [5,6] , 'green' : [7,8]}
date_test =  df_sample['timestamp']
y_test = ['123456']
data = np.array(list(df_sample.currState))
fig, ax = plt.subplots(figsize=(10, 1))
ax = plt.barh(y_test,date_test,label="trafficsignal")
data_cum = data.cumsum
plt.xlabel('timestamp') 
plt.ylabel('space')
plt.title('TimeSpace')
plt.legend()
plt.show()
timestamp                                       currState          IntersectionId    
2020-02-26 16:12:13.131484                        3                    12345
2020-02-26 16:12:14.131484                        3                    12345
2020-02-26 16:12:15.131484                        3                    12345
2020-02-26 16:12:16.131484                        5                    12345
2020-02-26 16:12:17.131484                        5                    12345
2020-02-26 16:12:18.131484                        5                    12345
2020-02-26 16:12:19.131484                        6                    12345
2020-02-26 16:12:20.131484                        6                    12345
2020-02-26 16:12:21.131484                        6                    12345

Текущий график:

plot

Желаемый участок:

plot I want to achieve

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...