尝试在 matplotlib.pyplot 标签中显示分段函数

问题描述 投票:0回答:1

Latex 在乳胶编辑器中工作,但不能作为绘图标签。我正在使用 matplotlib.pyplot 绘制一个函数,并且我使用乳胶作为标签。我正在绘制一个分段函数,并尝试根据函数的内容来标记它。应该覆盖分段函数两行的“{”仅覆盖第一行,第二行甚至在第一行开始之前开始。此外,当使用 & 对齐行时根本不起作用。

预计

Expected Latex Label

得到了

Label python function gives

使用:

pdfTeX,版本 3.141592653-2.6-1.40.26 (TeX Live 2024)(预加载格式=latex)

Python 3.10.5

代码

import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl


mpl.rcParams['text.usetex'] = True
X_2a = np.arange(0.0, 100, 0.1)

def piecewise_function(input_time):
    model_output = np.where(50 > input_time, np.sqrt(input_time), input_time**1.01-44.9237)
    return model_output


plt.plot(X_2a, piecewise_function(X_2a), label=r'$m_e=\begin{cases} t<50, \quad \sqrt{t} \\ t \ge 20, \quad t^{1.01}-44.9237 \end{cases}$')
plt.legend()
plt.show()
python matplotlib latex
1个回答
0
投票

cases
(不熟悉)可能是未使用的包的一部分。 也许只是
asmmath

可能有一种方法可以强制包含包。由于 matplotlib 只是将 Latex 作为外部命令执行,因此它应该能够执行 Latex 可以执行的任何操作。

但与此同时,我的解决方案是不使用它

r'$m_e=\left\{ \begin{array}{l} t<50, \quad \sqrt{t} \\ t \ge 20, \quad t^{1.01}-44.9237 \end{array} \right.$'

给出了相同的结果,我自己完成了

cases
的工作(正如你所看到的,这并不很复杂:只是一个由两个元素组成的数组,以
{
开头。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.