如何用python在方框图中显示平均值

2024-06-16 10:56:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在每个箱线图中显示平均值。如何添加它们

我使用了下一个代码,我收到了以下消息:

TypeError: cannot convert the series to <class 'float'>

谢谢

data_of=pd.read_csv(filename,header=0)

ax=plt.subplots(figsize=(20,8))
meanprops=dict(marker='D', markeredgecolor='black',markerfacecolor='black',markersize=10)
flierprops=dict(marker='.', markeredgecolor='black',markerfacecolor='white',markersize=10)

ax = sns.boxplot(x='MES', y='Finos', data=data_of, hue='ANO',linewidth=1,palette="Spectral_r",saturation=1,width=0.8,dodge=True
                 ,showfliers=True,showmeans=True, meanprops=meanprops,flierprops=flierprops)

means = pd.DataFrame(data_of.groupby(['MES', 'ANO'])['Finos'].mean())
means.reset_index(inplace=True)

n = 0
for MES in means['MES'].unique():
    valor = float(means.loc[(means.MES == MES) & (means.ANO == 'Yes')]['Finos'])
    plt.text(n+0.1, valor, "{:.2f}".format(valor))

    valor = float(means.loc[(means.MES == MES) & (means.ANO == 'No')]['Finos'])
    plt.text(n-0.3, valor, "{:.2f}".format(valor))

    n += 1

enter image description here

enter image description here


Tags: oftruedatapltaxfloatmeansvalor