2017-06-12 69 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