在图形上显示峰度和偏度时出错

Error in display kurtosis and skewness on graph

我在这个论坛上找到了一个代码,可以在直方图上计算和显示偏度和峰度。

这是我在情节中使用的代码:

sns.distplot(data['HR90'], color="blue", bins=15, kde=True)
    ax.text(x=0.97, y=0.97, transform=ax.transAxes, s="Skewness: %f" % data.iloc[:,i].skew(),\
        fontweight='demibold', fontsize=10, verticalalignment='top', horizontalalignment='right',\
        backgroundcolor='white', color='xkcd:poo brown')
    ax.text(x=0.97, y=0.91, transform=ax.transAxes, s="Kurtosis: %f" % data.iloc[:,i].kurt(),\
        fontweight='demibold', fontsize=10, verticalalignment='top', horizontalalignment='right',\
        backgroundcolor='white', color='xkcd:dried blood')

但是我遇到了这个错误:

ValueError: Location based indexing can only have [integer, integer slice (START point is INCLUDED, END point is EXCLUDED), listlike of integers, boolean array] types

我知道这里的问题是位置,可能是代码中说 iloc 的部分,但我不知道如何解决它,我刚开始使用 python 所以更广泛的解释越少我的问题...

我的最终目标是在这些图表上显示峰度和偏度

我认为问题在于此数据['HR90'] 已经是一个列。 并且您想在数据框的所有列上绘制图表。

尝试替换此数据['HR90'] for 循环中的整个数据帧数据 你好像在做。

sns.distplot(data['HR90'], color="blue", bins=15, kde=True)
    ax.text(x=0.97, y=0.97, transform=ax.transAxes, s="Skewness: %f" % data['HR90'].skew(),\
        fontweight='demibold', fontsize=10, verticalalignment='top', horizontalalignment='right',\
        backgroundcolor='white', color='xkcd:poo brown')
    ax.text(x=0.97, y=0.91, transform=ax.transAxes, s="Kurtosis: %f" % data['HR90'].kurt(),\
        fontweight='demibold', fontsize=10, verticalalignment='top', horizontalalignment='right',\
        backgroundcolor='white', color='xkcd:dried blood')