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

Matplotlib绘图标题如何同时显示LaTeX公式与Python参数值

Matplotlib 标题同时渲染LaTeX符号与动态参数值的实现方法

两种单前缀写法失效的原因:

  • 单独使用f-string时,普通字符串会把\a这类反斜杠开头的组合识别为Python转义字符,传给Matplotlib的字符串里不存在完整的LaTeX命令,因此公式渲染失败
  • 单独使用r原始字符串时,反斜杠不会被转义、LaTeX能正常渲染,但r前缀不支持f-string的占位符替换逻辑,动态参数值无法插入

可行方案如下:

  • 方案1:使用rf前缀组合(最推荐,代码可读性最高)
    Python 3.6及以上版本支持同时给字符串加r和f前缀,同时保留原始字符串不转义反斜杠、f-string替换占位符的能力。注意:LaTeX语法中所有需要保留的字面量大括号{},都要写成双大括号{{}}做转义,避免被f-string识别为占位符。
    示例代码:
import matplotlib.pyplot as plt

alpha = 0.73
beta = 1.29
# rf前缀组合,直接插入参数值
title_str = rf"$\alpha$ = {alpha:.2f}, $\beta$ = {beta:.2f}"
plt.title(title_str)

如果带LaTeX上下标、分式等需要大括号的场景,写法参考:

# 渲染α₁ = xxx效果时,下标部分的大括号要写双份转义
title_str = rf"$\alpha_{{1}}$ = {alpha:.2f}"
  • 方案2:普通f-string手动转义反斜杠
    如果运行环境不支持rf前缀组合,可以在普通f-string里把LaTeX的反斜杠写成双反斜杠\\,实现和r-string一致的反斜杠输出效果,同样LaTeX自带的非占位符大括号需要写双大括号转义。
    示例代码:
import matplotlib.pyplot as plt

alpha = 0.73
beta = 1.29
# 普通f-string,LaTeX反斜杠写双份转义
title_str = f"$\\alpha$ = {alpha:.2f}, $\\beta$ = {beta:.2f}"
plt.title(title_str)

踩坑提示:如果出现渲染报错、语法报错,优先检查两个点:一是LaTeX的反斜杠是否正确输出(要么用r前缀避免转义,要么写双反斜杠),二是LaTeX语法里的非占位符大括号是否都写成了双大括号,避免被f-string错误解析为变量占位。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 19:45:31