Python中Indicator组件relative为True时的delta格式化方法
Plotly Indicator Delta 百分比格式化问题解决
问题描述
在使用Plotly的Indicator组件设置delta格式化时遇到以下问题:
- 当
relative=False时,用valueformat=".2f"可将delta数值保留两位小数(如从179变为178.60); - 当
relative=True时,delta实际是小数形式的比例值(例如81.06%对应0.8106),直接使用.2f会显示为0.81,无法得到带百分号的两位小数格式(81.06%)。
解决方法
当relative=True时,需使用百分比格式字符串.2%,Plotly会自动将小数比例转换为百分比形式,保留指定小数位数的同时添加百分号后缀。
修改后的代码
import plotly.graph_objects as go fig = go.Figure() # 基础示例:relative=False fig.add_trace(go.Indicator( mode = "number+delta", value = 400.1456, domain = {'x': [0, 0.5], 'y': [0.5, 1]}, delta = {'reference': 221.544, 'relative': False}, title = {"text": "<span style='font-size:0.8em'>'relative': False</span>"} )) # relative=False + 保留两位小数 fig.add_trace(go.Indicator( mode = "number+delta", value = 400.1456, domain = {'x': [0, 0.5], 'y': [0, 0.5]}, delta = {'reference': 221.544, 'relative': False, "valueformat": ".2f"}, title = {"text": "<span style='font-size:0.8em'>'relative': False, 'valueformat': '.2f'</span>"} )) # 基础示例:relative=True fig.add_trace(go.Indicator( mode = "number+delta", value = 400.1456, domain = {'x': [0, 1], 'y': [0.5, 1]}, delta = {'reference': 221, 'relative': True}, title = {"text": "<span style='font-size:0.8em'>'relative': True</span>"} )) # relative=True + 百分比两位小数格式 fig.add_trace(go.Indicator( mode = "number+delta", value = 400.1456, domain = {'x': [0, 1], 'y': [0, 0.5]}, delta = {'reference': 221, 'relative': True, "valueformat": ".2%"}, title = {"text": "<span style='font-size:0.8em'>'relative': True, 'valueformat': '.2%'</span>"} )) fig.show()
效果说明
修改后,最后一个Indicator的delta会显示为+81.06%,既保留了两位小数,又正确展示了百分比形式。
内容的提问来源于stack exchange,提问作者jb12n
相关产品推荐
相关产品推荐

