matplotlib原生字符串标签中f导数与β符号显示异常如何解决
Matplotlib 原生字符串LaTeX标签导数符号显示异常解决方案
问题根源
异常是Python原生字符串(r前缀)的转义规则和LaTeX语法冲突导致的:
- 非原生字符串中,
\'会被Python先解析为单引号,最终传给Matplotlib的LaTeX引擎的内容是$f'(\beta)$,可以正常显示 - 原生字符串中反斜杠不会被用来转义引号,你写的
r'$f\'(\beta)$'最终传给LaTeX引擎的内容会带上多余的反斜杠,变成$f\'(\beta)$,LaTeX无法正确解析,因此显示错乱
可行解决方案
- 方案1:改用双引号包裹原生字符串,不需要对单引号转义,最简便
代码示例:plt.plot(x_to_plot, f_derivative_to_plot, label=r"$f'(\beta)$") - 方案2:使用LaTeX原生的
\prime命令表示导数符号,完全避免引号冲突,显示的导数符号更规范,也兼容高阶导数场景
一阶导代码示例:
高阶导写法示例(二阶导):plt.plot(x_to_plot, f_derivative_to_plot, label=r'$f^\prime(\beta)$')label=r'$f^{\prime\prime}(\beta)$' - 方案3:如果必须用单引号包裹字符串,可以在原生字符串外单独拼接单引号,不推荐但可用
代码示例:plt.plot(x_to_plot, f_derivative_to_plot, label=r'$f' + "'" + r'(\beta)$')
内容的提问来源于stack exchange,提问作者lelol
相关产品推荐
相关产品推荐

