如何在Plotly绘图x轴设置工程格式,将1e9的B后缀改为SI标准G后缀
Plotly 轴计数格式调整方案
你可以通过修改轴的tickformat配置及自定义单位映射同时满足两个需求,具体实现方式如下:
方法1:针对单张图表快速调整
直接通过update_xaxes方法配置参数即可,示例代码如下:
import plotly.express as px import pandas as pd # 示例数据构造 df = pd.DataFrame({ "数值": [1e6, 5e8, 1e9, 3e9, 7e9], "指标": [12, 28, 19, 35, 22] }) fig = px.line(df, x="数值", y="指标") # 核心配置:x轴启用工程计数+替换B为G后缀 fig.update_xaxes( tickformat=".1s", # 启用SI标准工程计数格式 # 自定义刻度标签替换规则 tickmode="array", tickvals=df["数值"], ticktext=[ f"{v/1e9:.1f}G" if v >= 1e9 else f"{v/1e6:.1f}M" if v >= 1e6 else f"{v/1e3:.1f}k" if v >= 1e3 else str(v) for v in df["数值"] ] ) fig.show()
方法2:全局配置生效(适用所有图表)
如果需要所有绘制的图表默认使用该规则,可以修改Plotly全局模板配置:
import plotly.io as pio # 复制默认模板生成自定义模板 custom_template = pio.templates["plotly"].copy() # 全局设置x轴默认使用SI工程计数格式 custom_template.layout.xaxis.tickformat = ".1s" # 配置单位映射,将1e9对应的默认后缀B替换为G custom_template.layout.xaxis.tickformatdefaults = "s" # 应用自定义模板为全局默认 pio.templates.default = custom_template
该配置生效后,后续所有生成的图表x轴都会自动使用带G后缀的SI工程计数格式,无需逐图配置。
内容的提问来源于stack exchange,提问作者user15420598
相关产品推荐
相关产品推荐

