4

我正在为数学课绘制一些图表,但我无法在情节图例中完全正确地获得和平定义的间距。我目前正在使用

\,

对于 TeX 中的单个空间,但遇到一种情况,其中一个比其他空间稍远,这可能是由于左边的方程占用了多少。这是我的代码

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

# 0-1
x = np.linspace(0, 1)
y = np.power(x, 2)
plt.plot(x, y, label=r"$t^2 \,\,\,\,\,\, 0 \leq t \leq 1$")

#1-2
x = [1,2]
y = [1,1]
plt.plot(x, y, label=r"$1 \,\,\,\,\,\,\, 1 < t \leq 2$")

#2-3
x = np.linspace(2, 3)
y = 3-x
plt.plot(x, y, label=r"$3 - t \,\,\,\, 2 < t \leq 3$")


plt.grid()
plt.axis([0,3,0,1.5])
plt.legend(loc='upper right')
plt.show()

这是结果

无论左侧的像素大小如何,我如何以一种始终有效的方式有效地格式化它?

4

1 回答 1

6

您当然可以通过访问较低级别的 LaTeX 来改进间距。首先,在您的绘图顶部运行:

from matplotlib import rc
rc('text', usetex=True)

使用\makebox和的组合\hfill可以填充两个部分之间的空格:

label=r"\makebox[4cm]{$t^2$ \hfill $0 \leq t \leq 1$}"
label=r"\makebox[4cm]{$1$ \hfill $1 < t \leq 2$}"
label=r"\makebox[4cm]{$3 - t$ \hfill $2 < t \leq 3$}"

在此处输入图像描述

诚然,这并不完美,但结合多个\makebox和填充,您可以微调您需要的内容。理想情况下,您可以编写一个自定义的图例处理程序,它“知道”一个多行的 TeX 块,但我相信这不是微不足道的。

于 2013-05-29T15:17:48.647 回答