You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中Plotly Express箱线图隐藏须线异常值及调整色调

Plotly Express箱线图:移除须线/异常值 + 自定义分组颜色

一、移除须线和异常值

你已经通过boxpoints=False移除了异常值,要移除须线,只需在update_traces中添加showwhiskers=False参数即可:

fig = px.box(all_services, x="xvalue", y="yvalue", color="label",
            title="title")
# 移除异常值+须线,保留分位数设置
fig.update_traces(quartilemethod="inclusive", boxpoints=False, showwhiskers=False)
fig.show()
  • boxpoints=False:隐藏异常值点
  • showwhiskers=False:隐藏箱线图的上下须线

二、同一标签同色,分类色调区分

假设你的数据中有一个category列(对应每个标签下的2个分类),可以通过颜色深浅变体实现需求:

步骤1:定义基础色与生成色调变体

使用Plotly内置的颜色调整工具,为每个标签生成基础色和浅色调(或深色调),对应两个分类:

import plotly.colors as pc
import pandas as pd

# 模拟你的数据结构(实际替换为你的真实数据)
all_services = pd.DataFrame({
    'xvalue': ['Group1']*40 + ['Group2']*40 + ['Group3']*40,
    'yvalue': list(range(20))*2 + list(range(10,30))*2 + list(range(5,25))*2,
    'label': ['LabelA']*20 + ['LabelA']*20 + ['LabelB']*20 + ['LabelB']*20 + ['LabelC']*20 + ['LabelC']*20,
    'category': ['Type1']*20 + ['Type2']*20 + ['Type1']*20 + ['Type2']*20 + ['Type1']*20 + ['Type2']*20
})

# 给每个标签分配基础色
base_colors = {
    'LabelA': '#1f77b4',  # 蓝色
    'LabelB': '#ff7f0e',  # 橙色
    'LabelC': '#2ca02c'   # 绿色
}

# 生成颜色映射:同一标签下的两个分类用深浅不同的同色系
color_map = {}
for label in base_colors:
    # 分类1用基础色
    color_map[f"{label}_Type1"] = base_colors[label]
    # 分类2用浅色调(亮度调整为1.3,数值越大越亮)
    light_version = pc.adjust_lightness(base_colors[label], 1.3)
    color_map[f"{label}_Type2"] = light_version

# 创建标签+分类的组合列,用于颜色映射
all_services['label_cat'] = all_services['label'] + '_' + all_services['category']

步骤2:绘制带自定义颜色的箱线图

将color参数指向组合列,并通过color_discrete_map指定颜色:

fig = px.box(all_services, x="xvalue", y="yvalue", color="label_cat",
             title="自定义分组颜色箱线图", color_discrete_map=color_map)

# 移除须线和异常值
fig.update_traces(quartilemethod="inclusive", boxpoints=False, showwhiskers=False)

fig.show()

这样同一标签下的两个分类会使用同色系的深浅色调,不同标签则用不同基础色,完全符合你的需求。

内容的提问来源于stack exchange,提问作者python_interest

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 10:23:25