熊猫:在一个箱子图中为传单设置不同的颜色

时间:2016-11-30 10:30:18

标签: python pandas boxplot

我想根据类别为箱图中的异常值设置不同的颜色。

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个Line对象的列表是有意义的(一个用于顶部胡须,一个用于底部胡须)。但对于 bp["fliers"]我只获得一个列表元素(bp["fliers"].set_color("r")甚至不做任何事情。

感谢您的帮助。

最高

1 个答案:

答案 0 :(得分:2)

好的,这是一个解决方案。 bp["fliers"].get_data()返回带有x-y值的元组。然后只需要通过

绘图
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