Как основать сегмент цветовой линии на значении строки / другого столбца? - PullRequest
0 голосов
/ 11 февраля 2019

фрейм данных с 3 столбцами

x       y     type
21/02   5     'a'
22/02   6     'b'
...   ...   ...

всего у меня есть два типа: 'a' and 'b'

на основе stackoverflow вопрос и документация matplotlib я пришел со следующим:

fig, ax = plt.subplots()   
xy = np.column_stack((df['x'],df['y'])) 
xy = xy.reshape(-1, 1, 2) 
segments = np.hstack([xy[:-1], xy[1:]]) 
coll = LineCollection(segments, color='r') 
ax.add_collection(coll)
plt.show()

Это дает мне следующий график:

enter image description here

Я думаю, что должен что-то сделатьс: coll.set_array(some_value) Но я не знаю как.

Я получил это далеко: я использовал тот же код, что и выше, но только изменил одну строку:

coll = LineCollection(segments,cmap=plt.cm.gist_ncar)

enter image description here

Но теперьЦвет сегментов наугад.

Как мне основать цвет сегментов на столбце type в моем фрейме данных?

1 Ответ

0 голосов
/ 11 февраля 2019

Если у вас есть только два цвета, это должно работать:

colors = ["red" if type=="a" else "blue" for type in df["type"]] 
coll = LineCollection(segments, color=colors)

Для большего количества цветов вы можете сопоставить типы со списком цветов аналогичным образом.

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