Plotly图表注释含两个美元符号$显示异常如何解决?
问题原因
Plotly注释文本默认支持LaTeX语法解析,$是LaTeX数学公式的定界符,你传入的字符串里的单个$会被识别为公式边界触发异常渲染,最终出现字体变化、显示乱码的问题。
修复方案
你可以任选以下任意一种方案解决:
- 方案1:转义美元符号
给所有字符串里的$前加双重反斜杠转义(Python字符串中反斜杠本身需要转义),修改字符串生成代码即可:anno_text = f"Maximum: {a} , \\${numerize.numerize(b)}\t" + f"Minimum: {c} , \\${numerize.numerize(d)}" - 方案2:全局禁用LaTeX渲染
如果你整张图表都不需要用到LaTeX公式,直接在更新布局时关闭MathJax解析即可,不需要修改原有字符串:fig.update_layout(annotations=annotations, mathjax=False) - 方案3:用HTML实体代替美元符号
将字符串中的$替换为HTML实体$,也可以避免触发LaTeX解析:anno_text = f"Maximum: {a} , ${numerize.numerize(b)}\t" + f"Minimum: {c} , ${numerize.numerize(d)}"
额外建议
不要使用str作为自定义变量名,str是Python内置的字符串类型关键字,覆盖后可能会引发其他不可预期的错误。
内容的提问来源于stack exchange,提问作者mary hoji
相关产品推荐
相关产品推荐

