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

如何在Matplotlib图例中使用Sympy方程作为标签?

如何在Matplotlib图例中使用SymPy方程作为标签

核心思路

SymPy表达式可转换为LaTeX格式,而Matplotlib支持渲染LaTeX数学公式,因此只需将SymPy方程转为LaTeX字符串,再作为图例标签传入即可。

具体实现步骤及代码示例

1. 导入所需库

import sympy as sp
import matplotlib.pyplot as plt
import numpy as np

2. 创建SymPy方程

定义符号与目标方程:

x = sp.symbols('x')
# 示例方程:sin(x) = cos(x)
eq = sp.Eq(sp.sin(x), sp.cos(x))

3. 将SymPy方程转为LaTeX字符串

使用SymPy内置的latex()函数完成格式转换:

eq_latex = sp.latex(eq)

4. 绘图并设置图例标签

将LaTeX字符串用$包裹后作为图例标签,Matplotlib会自动渲染为标准数学公式:

# 生成绘图数据
x_vals = np.linspace(-np.pi, np.pi, 100)
y_sin = np.sin(x_vals)
y_cos = np.cos(x_vals)

# 绘制曲线并指定图例标签
plt.plot(x_vals, y_sin, label=f'${eq_latex}$')
plt.plot(x_vals, y_cos, label=r'$\cos(x)$')

# 显示图例与图表
plt.legend()
plt.show()

关键注意事项

  • 必须用$包裹LaTeX字符串,Matplotlib才会识别为数学公式进行渲染。
  • 若需要更专业的LaTeX渲染效果,可开启Matplotlib的外部LaTeX支持(需环境已安装LaTeX工具链):
    plt.rcParams['text.usetex'] = True
    plt.rcParams['font.family'] = 'serif'
    
  • 可直接在label参数中内嵌sp.latex()调用,简化代码:
    plt.plot(x_vals, y_sin, label=f'${sp.latex(eq)}$')
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 17:22:07