Вам необходимо определить пользовательскую функцию, которая принимает столбец в data.frame в качестве первого аргумента, а затем вы можете построить среднее значение, используя plt.axvline
. Текст немного хитрый (надеюсь, я правильно понял); вам нужно использовать plt.text
в координаты осей :
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
sns.set(style="darkgrid")
def geom_vline(data,**kwargs):
ax = plt.gca()
m = data.mean()
plt.axvline(m, **kwargs)
plt.text(0.8,0.8,"Mean= "+str(round(m)),horizontalalignment='center',
verticalalignment='center',transform=ax.transAxes)
tips = sns.load_dataset("tips")
g = sns.FacetGrid(tips, row="sex", col="time", margin_titles=True)
bins = np.linspace(0, 60, 13)
g.map(plt.hist, "total_bill", color="steelblue", bins=bins)
g.map(geom_vline,"total_bill", ls=":", c=".5")
![enter image description here](https://i.stack.imgur.com/Ydily.png)