我有一个带有一些数据的pandas数据帧,有些列是类别,在这种情况下(isPassed
)只是一个布尔值。
我正在绘制一些直方图,我想绘制所有条目并叠加isPassed
为True的那个。例如:
g = sns.FacetGrid(df, col=col_quantity, hue="isPassed")
g = g.map(plt.hist, hist_quantity, bins=np.linspace(-5, 5, 50), normed=False)
对于具有hist_quantity
条目的isPassed == 0
和具有isPassed == 1
的条目,使用不同颜色的直方图。正如我所说,我希望在isPassed
(True or False
)和isPassed == 1
的{{1}}上添加条目而不加任何检查。
当然有很多方法可以做到这一点,但我想与FacetGrid
一起做。一种解决方案是复制条目,并为重复的条目设置isPassed == 2
,并使用isPassed == 1
和isPassed == 2
绘制一个条目。我不喜欢这个解决方案,最好的解决方案是让hue
值接受可调用,或者表达式为pandas.DataFrame.query
。其他解决方案?
答案 0 :(得分:0)
这是我的解决方案,我希望有人有更好的解决方案:
g = sns.FacetGrid(df, col=col_quantity)
def p(x, passed, **kwargs):
bins = kwargs.get('bins', None)
plt.hist(x, bins=bins, normed=False)
plt.hist(x[passed == 1], bins=bins, normed=False)
g = g.map(p, hist_quantity, "isPassed", bins=np.linspace(-5, 5, 50))