2016-11-30 18 views
1

我想根据类别为盒子外的异常值设置不同的颜色。熊猫:在一个盒子里为飞行员设置不同的颜色

f = plt.figure() 
ax = f.add_subplot(111) 
df = pd.DataFrame({"X":[-100,-10,0,0,0,10,100], 
        "Category":["A","A","A","A","B","B","B",]}) 
bp = df.boxplot("X", return_type="dict", ax=ax, grid=False) 
ax.set_ylim(-110,110) 
plt.text(1,90,"this flier red",ha='center',va='center') 
plt.text(1,-90,"this flier blue",ha='center',va='center') 

Different flier colors in boxplot

我怎样才能得到传单(以上和低于上限的交叉)不同的颜色?

我知道我可以通过

bp["whiskers"][0].set_color("b") 
bp["whiskers"][1].set_color("r") 

的胡须设置不同的颜色,它是有道理的,bp["whiskers"]返回2点线的对象(一个用于顶部晶须和一个用于底部一个)的列表。但对于 bp["fliers"]我只得到一个列表元素(bp["fliers"].set_color("r")甚至没有做任何事情。

感谢您的帮助。

最大

回答

2

好吧,这是一个解决方案。bp["fliers"].get_data()返回一个元组与XY值,然后在某个只是有通过

ax.plot([1],[bp["fliers"][0].get_data()[1][0]], 'b+') 
ax.plot([1],[bp["fliers"][0].get_data()[1][1]], 'r+') 

enter image description here

绘制
相关问题