<p>使用<code>FacetGrid.map</code>时,任何引用<code>data</code>数据帧的内容都必须作为位置参数传递。这在您的情况下是可行的,因为<code>yerr</code>是<code>plt.errorbar</code>的第三个位置参数,不过为了演示我将使用tips数据集:</p>
<pre><code>from scipy import stats
tips_all = sns.load_dataset("tips")
tips_grouped = tips_all.groupby(["smoker", "size"])
tips = tips_grouped.mean()
tips["CI"] = tips_grouped.total_bill.apply(stats.sem) * 1.96
tips.reset_index(inplace=True)
</code></pre>
<p>然后我可以使用<code>FacetGrid</code>和<code>errorbar</code>绘制:</p>
<pre><code>g = sns.FacetGrid(tips, col="smoker", size=5)
g.map(plt.errorbar, "size", "total_bill", "CI", marker="o")
</code></pre>
<p><img src="https://i.stack.imgur.com/62z6b.png" alt="enter image description here"/></p>
<p>但是,请记住,有seaborn绘图函数用于从完整数据集到带有错误条的绘图(使用引导),因此对于许多应用程序,这可能不是必需的。例如,可以使用<code>factorplot</code>:</p>
<pre><code>sns.factorplot("size", "total_bill", col="smoker",
data=tips_all, kind="point")
</code></pre>
<p><img src="https://i.stack.imgur.com/dnSXO.png" alt="enter image description here"/></p>
<p>或<code>lmplot</code>:</p>
<pre><code>sns.lmplot("size", "total_bill", col="smoker",
data=tips_all, fit_reg=False, x_estimator=np.mean)
</code></pre>
<p><img src="https://i.stack.imgur.com/Eo78Z.png" alt="enter image description here"/></p>