Plotly Python如何同时设置箱线图须长并为单个箱线单独配色
实现方案
原示例把多组箱线放在同一个go.Box trace里的写法,不支持给单个箱线配置独立颜色。只要把每个箱线拆成独立trace单独添加,就能同时满足两个需求:既完全保留对四分位数、上下围栏(须长)等统计参数的自定义控制权,又能给每个箱线单独设置配色。
直接参考下面可运行的代码,参数和你给出的官方示例完全对应:
import plotly.graph_objects as go fig = go.Figure() # 第1个箱线 独立配色 fig.add_trace(go.Box( y=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], name="分组1", # 自定义统计参数,和原示例第一组数值一一对应 q1=1, median=4, q3=7, lowerfence=-1, upperfence=5, mean=2.2, sd=0.2, notchspan=0.2, # 自定义该箱线的颜色:填充色、边框色、点色 fillcolor="#636EFA", line_color="#2033B4", marker_color="#2033B4" )) # 第2个箱线 独立配色 fig.add_trace(go.Box( y=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], name="分组2", # 对应原示例第二组统计值 q1=2, median=5, q3=8, lowerfence=0, upperfence=6, mean=2.8, sd=0.4, notchspan=0.4, fillcolor="#EF553B", line_color="#B82A12", marker_color="#B82A12" )) # 第3个箱线 独立配色 fig.add_trace(go.Box( y=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], name="分组3", # 对应原示例第三组统计值 q1=3, median=6, q3=9, lowerfence=1, upperfence=7, mean=3.2, sd=0.6, notchspan=0.6, fillcolor="#00CC96", line_color="#008761", marker_color="#008761" )) # 全局统一配置:显示均值+标准差、开启缺口 fig.update_traces(boxmean="sd", notched=True) fig.show()
补充说明
- 所有统计参数的逻辑和官方示例完全一致,拆分为单trace后参数传单个数值即可,你对须长、四分位、均值、缺口宽度的自定义权限不会有任何损失
- 除了填充色,每个箱线还可以单独调整须线样式、边框粗细、异常点样式、均值线样式等所有视觉属性
- 如果箱线数量较多,可以把分组名称、统计值、配色整理成列表循环添加trace,减少重复代码
内容的提问来源于stack exchange,提问作者Patrick
相关产品推荐
相关产品推荐

