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

Plotly使用facet_col生成分面子图时如何自定义修改子图标题

Plotly分面子图自定义标题修复方案

错误原因

  • 字典键值不匹配:Plotly内置tips数据集的sex字段实际取值为Female、Male,你定义的names字典键写为Femmine/Maschi,无法和分面生成的默认标题匹配。
  • 注解遍历逻辑错误:for_each_annotation会逐个传入每个子图的标题注解对象,你的写法没有匹配当前注解对应的原始分面类别,直接将字典全部键的字符串赋值给所有注解,导致两个子图都显示全部键名。

正确实现代码

import plotly.express as px

df = px.data.tips()
# 修正字典键,和数据集sex字段的实际取值对应,值为自定义的子图标题
names = {'Female':'Plot1', 'Male':'Plot2'}
fig = px.box(df, x='day', y='tip', facet_col='sex')

# 遍历所有子图标题注解,提取原始分面值后映射为自定义标题
fig.for_each_annotation(lambda a: a.update(text=names[a.text.split('=')[-1]]))

fig.show()

逻辑说明

默认生成的分面标题格式为分面字段名=分面值,比如sex=Female,通过a.text.split('=')[-1]可以提取出末尾的实际分面值(Female/Male),再用这个值去names字典中取对应的自定义标题即可完成替换。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 00:27:24