如何显示一个数据框中 3 列的 3 个箱线图

How to show 3 box plots from 3 columns from one dataframe

我的问题是我无法在一张图上显示 3 个箱线图 space。当我尝试这样做时,我只看到空白 space,没有任何情节。将列名称之一赋予 px.box 函数的“y”参数,仅显示一个框。但是我想要3对1space.

def filter_df(df):
    original_list = df.values.tolist()
    iqr_list = IQR_outliners(df)
    zscore_list = zscore_outliners(df)
    
    dc = {'Original':original_list,'IQR':iqr_list, 'Z-Score':zscore_list}
    df_new = pd.DataFrame.from_dict(dc, orient='index')
    df_new = df_new.transpose()
    print(df_new)
    
    fig = px.box(df_new)
    fig.show()

filter_df(df1.holeDiameter)

这是我要绘制的数据框,在绘图空白下方 space:

      Original    IQR  Z-Score
0          NaN  0.120    0.120
1          NaN  0.101    0.101
2        0.120  0.100    0.100
3        0.101  0.100    0.100
4        0.100  0.100    0.100
...        ...    ...      ...
1430     0.100    NaN      NaN
1431     0.100    NaN      NaN
1432     0.100    NaN      NaN
1433     0.100    NaN      NaN
1434     0.100    NaN      NaN

[1435 rows x 3 columns]

有什么想法吗?

好的,我做到了!

import plotly.graph_objects as go

def filter_df(df):
    original_list = df.values.tolist()
    iqr_list = IQR_outliners(df)
    zscore_list = zscore_outliners(df)
    
    dc = {'Original':original_list,'IQR':iqr_list, 'Z-Score':zscore_list}
    df_new = pd.DataFrame.from_dict(dc, orient='index')
    df_new = df_new.transpose()
    
    print(df_new)

    fig = go.Figure()

    for col in df_new:
        fig.add_trace(go.Box(y=df_new[col].values, name=df_new[col].name))
  
    fig.show()

filter_df(df1.holeDiameter)