2016-11-30 41 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

繪製
相關問題