PyCall画图如何传入Tex字符?

我调用PyCall写了个fitplot函数:

py"""
import matplotlib.pyplot as plt
plt.style.use("science")

def fitplot(xdata1, ydata1, xdata2, ydata2, xlabel, ylabel):
    plt.figure(figsize=(6,6))
    plt.plot(xdata1, ydata1, ".", color="r", label="ori")
    plt.plot(xdata2, ydata2, "--", color="b", label="fit")
    plt.legend()
    plt.grid()
    plt.xlabel(xlabel)
    plt.ylabel(ylabel)
    plt.show()
"""

当我尝试画图时:

py"fitplot"(zvec, wakeforcevec, zvec, funWakeForce.(zvec), "z", r"$\Delta\delta$")


可以看到传入的Tex乱七八糟的。
要是ylabel能正确传入Tex就好了。

和python略有区别
可能需要

plt.xlabel(raw"$\Delta_p\ (\Gamma)$")
2 个赞

我比较喜欢用LaTeXStrings

using LaTeXStrings
plt.xlabel(L"\Delta_p\Gamma")