代码之家  ›  专栏  ›  技术社区  ›  Leos313

熊猫箱线图的数据限制和最大距离(Python)

  •  0
  • Leos313  · 技术社区  · 5 年前

    我正在使用Python绘制数据(来自许多实验),我想使用 boxplot 方法 pandas

    执行 df = pd.DataFrame(value,columns=['Col1']) 结果如下:

    enter image description here

    问题来自于极值。在Matlab中,解决方案是使用“DataLimit”选项:

    boxplot(bp1,'DataLim',[4.2,4.3])
    

    来自Matlab文档:

    数据限制和最大距离

    “DataLim”极端数据限制 [-Inf,Inf](默认值)|二元数值向量

    极端数据限制,指定为逗号分隔对,由'DataLim'和分别包含下限和上限的两元素数字向量组成。“extremode”使用为“DataLim”指定的值来确定哪些数据点是极端的。

    Python有类似的东西吗?

    绕机检查 : 不过,我有一个散步( 因为它改变了测量值的统计分布):我只是手动排除“有问题的值”:

    df = pd.DataFrame(value[100:],columns=['Col1'])
    df.boxplot(column=['Col1'])
    

    enter image description here

    这是因为我知道问题出在哪里。

    0 回复  |  直到 5 年前
        1
  •  0
  •   rgk    5 年前

    你可以用 ylim 要约束轴而不从计算中忽略异常值,请执行以下操作:

    data = np.concatenate((np.random.rand(50) * 100,  # spread
                           np.ones(25) * 50,  # center
                           np.random.rand(10) * 100 + 100,  # flier high
                           np.random.rand(10) * -100,  # flier low
                           np.random.rand(2) * 10_000))  # unwanted outlier
    fig1, ax1 = plt.subplots()
    ax1.boxplot(data)
    plt.ylim([-100, 200])
    plt.show()