我想为Matplotlib图形的标题居中,该图形在呈现LaTeX样式时包括换行符(\)
可以在标题的中间插入一个简单的乳胶\\返回码,但不会使其居中,以便换行从第一行尴尬地移开。
from matplotlib import pyplot as plt
plt.rc('text', usetex=True)
plt.title(r"\center{\textbf{Some title \\ with with a newline}}")
或
plt.title(r"\begin{centering}{\textbf{Some title \\ with a newline}\end{centering}")
不起作用
当我输入之前引用的行时,在图上根本没有标题输出。我在python命令解释器上没有LaTeX错误。
答案 0 :(得分:1)
您可以轻松地使用\n
在plt.title()
中获取换行符:
import numpy as np
import matplotlib.pyplot as plt
plt.rc('text', usetex=True)
t = np.arange(0., 5., 0.2)
plt.plot(t, t/5000,)
plt.title(r"$\textbf{Some title}$"
"\n"
r"$\textbf{with a formula}:$"
"\n"
r"$y=t/5000$")
plt.show()
答案 1 :(得分:0)
假设您的系统上安装了合适的 LaTex,并且所有设置都在 matplotlib 中使用 LaTex,您必须设置一个特定的 LaTex 序言,其中 /begin{center} ... /end{center}
可用。
这是一个工作示例。
import numpy as np
import matplotlib
matplotlib.rcParams['text.usetex'] = True
import matplotlib.pyplot as plt
custom_preamble = {
"text.latex.preamble":
r"\usepackage{amsmath}" # for the align, center,... environment
,
}
plt.rcParams.update(custom_preamble)
plt.figure(figsize= (6,4),tight_layout = True)
t = np.linspace(0.0, 1.0, 100)
s = np.cos(4 * np.pi * t) + 2
plt.plot(t, s,label='your legend')
plt.xlabel(r'\textbf{bold (s)}')
plt.ylabel('\\textit{italic (\N{DEGREE SIGN}/sec)}', fontsize=16)
plt.title(r'\begin{center}Your title\\ new line, centered: ($-e^{i\pi}$, centered\end{center}')
plt.legend()
plt.show()
这给出: