Plotly绘制柱状图数值标签格式错误如何修正
问题原因
text_auto=".2s" 中的格式符s对应SI单位自动量级格式化规则,会根据数值大小自动套用千、兆、毫、微等量级前缀缩放数值,当数值绝对值小于1时就会自动使用毫(m,对应10^-3量级)做转换,这就是-0.2被错误显示为-200m的原因。
修复方法
将text_auto的格式规则替换为固定小数位的f格式即可,所有标签会统一使用10^0量级的常规小数显示,不会再自动做量级缩放:
- 匹配现有数据精度(保留1位小数):设置
text_auto=".1f" - 若需要保留2位小数:设置
text_auto=".2f"
修正后可直接运行的代码
import pandas as pd import plotly.express as px states = ["Andhra Pradesh", "Gujarat", "Tamil Nadu", "Rajasthan"] delta_gdp = [-1.4, -0.2, 3.1, 4.0] d = {'state':states,'delta_gdp':delta_gdp} df = pd.DataFrame(d) # 替换原有的.text_auto=".2s"参数 fig = px.bar(df, x='state', y='delta_gdp', text_auto=".1f", title = "Percentage difference in GDP") fig.update_traces(textfont_size=14, textangle=0, textposition="outside", cliponaxis=False) fig.show()
运行后古吉拉特邦(Gujarat)对应的柱体标签会正确显示为-0.2,其余标签也会按固定小数规则展示。
内容的提问来源于stack exchange,提问作者Ludwig
相关产品推荐
相关产品推荐

