我有一个非常基本的问题:如何使用“注释”命令在 python 中使用 matplotlib 进行换行。我尝试了“\”和“\n”,但它不起作用。以及如何为“Latex”注释和普通文本注释执行此操作?
非常感谢。
我有一个非常基本的问题:如何使用“注释”命令在 python 中使用 matplotlib 进行换行。我尝试了“\”和“\n”,但它不起作用。以及如何为“Latex”注释和普通文本注释执行此操作?
非常感谢。
你到底尝试了什么?
您是否偶然使用了原始字符串(例如r"whatever"
)?
'\n'
完美地工作,但如果你使用原始字符串来避免乳胶序列被解释为转义,它将被 python 解释为'\'
而'n'
不是换行符。
举个例子:
import matplotlib.pyplot as plt
plt.annotate('Testing\nThis\nOut', xy=(0.5, 0.5))
plt.show()
另一方面,如果我们使用原始字符串:
import matplotlib.pyplot as plt
plt.annotate(r'Testing\nThis\nOut', xy=(0.5, 0.5))
plt.show()
但是,如果您需要两者,请考虑以下示例:
import matplotlib.pyplot as plt
a = 1.23
b = 4.56
annotation_string = r"Need 1$^\mathsf{st}$ value here = %.2f" % (a)
annotation_string += "\n"
annotation_string += r"Need 2$^\mathsf{nd}$ value here = %.2f" % (b)
plt.annotate(annotation_string, xy=(0.5, 0.5))
plt.show()
这给了你:
关键是预先组装字符串,使用+=
. 这样,您可以在同一注释中使用原始字符串命令(由 表示r
)和换行符 ( )。\n
您可以在定义注释字符串时使用三引号,如在 中 string="""some text"""
,这样您在字符串中键入的实际换行符将被解释为输出中的换行符。这是一个示例,其中包括乳胶和代码其他部分的一些数字参数的打印
import matplotlib.pyplot as plt
I = 100
T = 20
annotation_string = r"""The function plotted is:
$f(x) \ = \ \frac{{I}}{{2}} \cos\left(2 \pi \ \frac{{x}}{{T}}\right)$
where:
$I = ${0}
$T = ${1}""".format(I, T)
plt.annotate(annotation_string, xy=(0.05, 0.60), xycoords='axes fraction',
backgroundcolor='w', fontsize=14)
plt.show()
我添加了一些“附加功能”:
开r
三引号前不久,以方便 LaTeX 解释器
双大括号{{}}
,这样.format()
命令和 LaTeX 就不会相互混淆
xycoords='axes fraction'
选项,以便指定具有小数值的字符串相对于绘图的宽度和高度的位置backgroundcolor='w'
注释周围放置一个白色选框(在与您的绘图重叠的情况下方便)快速解决方案
plt.annotate("I am \n"+r"$\frac{1}{2}$"+"\n in latex math environment", xy=(0.5, 0.5))