Plot bool-int разбросаны в разных цветах в python

Chi спросил: 28 марта 2018 в 02:46 в: python

У меня есть dataframe, как показано ниже:

df =
       index           boolvalue  
2014-05-21 10:00:00            1        
2014-05-21 11:00:00            1        
2014-05-21 12:00:00            0      
2014-05-21 13:00:00            1        
2014-05-21 14:00:00            0        
2014-05-21 15:00:00            1 
....

В столбце есть только два значения: "1" и "0".

Это источник код и рисунок, которые я сделал:

plt.scatter(df.index, df.boolvalue, s = 5,c='b' )
plt.ylim([-2, 2])

Я хотел бы построить его как график рассеяния со значением "1" в цвете синий и "0" в цвете красный.

Поскольку индекс (временной ряд) равен долго, я думаю, что лучше не использовать for-loop. Кто-нибудь есть идея сделать это? Спасибо заранее!

1 ответ

Есть решение
Ami Tavory ответил: 28 марта 2018 в 03:37

Вы можете подумать, хотите ли вы диаграмму рассеяния или два коробчатых диаграммы.

Для диаграммы рассеяния вы можете использовать

for (v, c) in [(1, 'b'), (0, 'r')]:
    plt.scatter(df.index[df.boolvalue == v], df.boolvalue[df.boolvalue == v], s = 5,c=c)

. Для данных примера это выглядит как