2017-06-12 71 views
0

我想通過列表中的值對顏色代碼欄進行顏色編碼。我策劃這樣的事情,但我無法弄清楚如何着色它:按樣本matplotlib的顏色條

x=[1,2,3] 
y=[1,2,3] 
type=[big,small,big] 

p1=plt.bar(x,y) 
plt.colorbar(type) 

回答

0

所以我落得這樣做創建與定義的顏色字典我的每個參數,然後只是將這筆打印時像這樣:

colors = {'C':'b', 'T':'r', 'G':'g', 'A':'y'} 
wts.append(colors[x[3]]) 
p1 = plt.bar(loci, vafs, color=wts) 
0

您可以創建一個從typ列表到顏色的字典映射值。然後使用該字典,您可以創建一個顏色列表,以提供給barcolor參數。

爲了創建圖例,可以使用相同的字典來設置圖例句柄的顏色。

import matplotlib.pyplot as plt 

x=[1,2,3] 
y=[1,2,3] 
typ=["big","small","big"] 
color = {"big" : "indigo", "small" : "mediumvioletred"} 
p1 = plt.bar(x,y, color=[color[t] for t in typ]) 

handles = [plt.Rectangle((0,0),1,1, color=color[c]) for c in set(typ)] 
plt.legend(handles=handles, labels=set(typ)) 

plt.show() 

enter image description here