Matplotlib seaborn FacetGrid条形图中的最小条着色

Matplotlib seaborn FacetGrid条形图中的最小条着色,matplotlib,seaborn,Matplotlib,Seaborn,是否有任何简单的方法可以自动为FacetGrid的每个绘图的最小/最大条形图着色(或以任何方式标记) 例如,如何在以下16个图中的每个图上标记最小Z值 df = pd.DataFrame({'A':[10, 20, 30, 40]*4, 'Y':[1,2,3,4]*4, 'W':range(16), 'Z':range(16)}) g = sns.FacetGrid(df, row="A", col="Y", sharey=False) g.map(sns

是否有任何简单的方法可以自动为FacetGrid的每个绘图的最小/最大条形图着色(或以任何方式标记)

例如,如何在以下16个图中的每个图上标记最小Z值

df = pd.DataFrame({'A':[10, 20, 30, 40]*4, 'Y':[1,2,3,4]*4, 'W':range(16), 'Z':range(16)})
g = sns.FacetGrid(df, row="A", col="Y", sharey=False)
g.map(sns.barplot, "W", "Z")
plt.show()

以下方法通过对角轴循环,对于每个ax,搜索条的最小高度,然后为其着色:

导入matplotlib.pyplot作为plt
作为pd进口熊猫
导入seaborn作为sns
数据帧({'A':[10,20,30,40]*4,'Y':[1,2,3,4]*4,'W':范围(16),'Z':范围(16)})
g=sns.FacetGrid(df,row=“A”,col=“Y”,sharey=False)
g、 地图(sns.barplot,“W”、“Z”)
对于范围内的i(长度(g轴)):
ax=g轴[i,i]
min\u height=min([p.get\u height()表示ax.patches中的p])
对于ax.patches中的p:
如果p.get_height()=最小高度:
p、 设置颜色(“红色”)
plt.紧_布局()
plt.show()

数据帧有点“怪异”,是为了举例而生成的。这很有效。但是,我修改了它,使其适用于所有绘图(而不仅仅是对角线)。