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

如何在Matplotlib中以编程方式构建LaTeX标签?

解决Matplotlib动态构建LaTeX标签的问题

你之前的写法错误地将格式化字符串与原始字符串标记混在一起,导致生成的标签是带r'...'的文本,而非Matplotlib能解析的LaTeX表达式。以下是两种可行的解决方式:

方法一:使用原始格式化字符串(推荐)

直接用rf""组合原始字符串与格式化功能,这样\pi无需额外转义,同时能动态替换变量:

function = 'sin'
my_label = rf"$2\pi*{function}(x)$"
current_ax.set_ylabel(my_label)

方法二:普通格式化字符串转义反斜杠

如果不用原始字符串,需要将\pi中的反斜杠转义为\\pi:

function = 'sin'
my_label = f"$2\\pi*{function}(x)$"
current_ax.set_ylabel(my_label)

完整修改后的示例代码

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0., 2.* np.pi, 20)
y = 2. * np.pi * np.stack((np.sin(x), np.cos(x)))

fig, ax = plt.subplots(2, 1, figsize=(6, 8), dpi=200, constrained_layout=True)

# 动态生成sin标签
function = 'sin'
current_ax = ax[0]
current_ax.plot(x, y[0, :], '--.k', markersize=5, alpha=0.5)
current_ax.set_xlabel('x')
current_ax.set_ylabel(rf"$2\pi*{function}(x)$")

# 动态生成cos标签
function = 'cos'
current_ax = ax[1]
current_ax.plot(x, y[1, :], '--.k', markersize=5, alpha=0.5)
current_ax.set_xlabel('x')
current_ax.set_ylabel(rf"$2\pi*{function}(x)$")

plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 21:59:53