[英]pandas plot one line graph with color change on column
我的數據框
df = pd.DataFrame({'date': ['2018-01-01', '2018-01-02', '2018-01-03', '2018-01-04', '2018-01-05'], 'b': ['a', 'a', 'b', 'b', 'c'], 'c': [1,2,3,4,5]})
date b c
0 2018-01-01 a 1
1 2018-01-02 a 2
2 2018-01-03 b 3
3 2018-01-04 b 4
4 2018-01-05 c 5
我想繪制一個折線圖,其中 X 是date
, y 是c
並且線的顏色基於b
變化。 對於此示例,應該有 3 種不同的顏色,只要它們不同,實際顏色就無關緊要。
我雖然這會起作用,但它不允許按列更改顏色。
輸出應該是一個行會改變顏色
您基本上想為b
列中的每個值創建一個新系列。 一種方法是對date
和b
進行分組,然后將b
取消堆疊,另一種方法是使用pivot
。 然后只是繪制結果。
df.pivot(index='date', columns='b').droplevel(0, axis=1).plot(colors='rbc')
# 'rbc' = ['red', 'blue', 'cyan']
# These colors are based on the column ordering, e.g. 'a', 'b', 'c'.
更明確的顏色:
colors = {
'a': 'red',
'b': 'blue',
'c': 'cyan'
}
(df
.pivot(index='date', columns='b')
.droplevel(0, axis=1)[colors.keys()]
.plot(colors=colors.values())
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.