在 Plotly 中绘制箱线图时根据类别设置不同的颜色

Set different colors based on categories when box plotting in Plotly

假设有数据:

import pandas as pd
df = pd.DataFrame(
    {
        "val": np.random.normal(0, 1, size=100),
        "cat": np.random.choice(["a", "b"], size=100),
    }
)

接下来,可视化一个箱线图:

from plotly import graph_objects as go
fig = go.Figure()
fig.add_trace(go.Box(y=df["val"], x=df["cat"], boxmean="sd",))

我正在使用 go.Box 因为我想可视化 STD。这产生:

如何根据类别设置左右箱线图的不同颜色?

您可以通过遍历每个类别变量来更改颜色。

for c in df['cat'].unique():
    dff = df[df['cat'] == c]
    fig.add_trace(go.Box(y=dff["val"], x=dff["cat"], boxmean="sd", name=c))