如何使用 plt.text() 函数将特殊符号键入由 python3 生成的图中?
How to use plt.text() function to type special symbols into a plot produced by python3?
我正在尝试在 python 脚本中的空图形内键入文本(其中包括一些天体物理符号,如太阳质量和哈勃参数):
import numpy as np
import matplotlib.pyplot as plt
plt.figure(4)
frame = plt.gca()
frame.axes.get_xaxis().set_ticks([])
frame.axes.get_yaxis().set_ticks([])
A = 2
B = 2
C = 3
D = 4
plt.text(0.05, 0.05, r'$R_{200m}$={:.0f} kpc physical \n\n $M_{200m}$={:.3e} $h^{-1} M_{\sun}$ \n\n\n\n x={:.0f} \n\n $M_{DM}$={:.3e} $h^{-1} M_{\odot}$'.format(A, B, C, D), size=20)
plt.show()
我在 运行 使用 python3 example.py
的脚本后收到以下错误消息:
File "exam.py", line 12, in <module>
plt.text(0.05, 0.05, r'$R_{200m}$={:.0f} kpc physical \n\n $M_{200m}$={:.3e} $h^{-1} M_{\sun}$ \n\n\n\n x={:.0f} \n\n
$M_{DM}$={:.3e} $h^{-1} M_{\odot}$'.format(A, B, C, D), size=20)
KeyError: '200m'
我不知道如何在 python 脚本中进行 LateX 打字?
附件是 运行 我在其中使用与答案中建议的格式相同的代码时的错误消息快照。我是 运行 只安装了 python3.5 的 anaconda 上的这段代码:
将您的 plt.text...
行替换为以下内容:
plt.text(0.05, 0.05, '$R_{{200m}}$={:.0f} kpc physical \n\n $M_{{200m}}$={:.3e} $h^{{-1}} M_\u2609$ \n\n\n\n x={:.0f} \n\n $M_{{DM}}$={:.3e} $h^{{-1}} M_{{\odot}}$'.format(A, B, C, D), size=20)
我只是:
- 将
{\sun}
替换为 \u2609
,参见 How to do the astronomical symbol "\sun" in PyX。
- 将每个 LateX 的
{
加倍,因此 format
方法不会将其参数放入其中。
- 删除了字符串前的
r
以便 \n
会影响。
我正在尝试在 python 脚本中的空图形内键入文本(其中包括一些天体物理符号,如太阳质量和哈勃参数):
import numpy as np
import matplotlib.pyplot as plt
plt.figure(4)
frame = plt.gca()
frame.axes.get_xaxis().set_ticks([])
frame.axes.get_yaxis().set_ticks([])
A = 2
B = 2
C = 3
D = 4
plt.text(0.05, 0.05, r'$R_{200m}$={:.0f} kpc physical \n\n $M_{200m}$={:.3e} $h^{-1} M_{\sun}$ \n\n\n\n x={:.0f} \n\n $M_{DM}$={:.3e} $h^{-1} M_{\odot}$'.format(A, B, C, D), size=20)
plt.show()
我在 运行 使用 python3 example.py
的脚本后收到以下错误消息:
File "exam.py", line 12, in <module>
plt.text(0.05, 0.05, r'$R_{200m}$={:.0f} kpc physical \n\n $M_{200m}$={:.3e} $h^{-1} M_{\sun}$ \n\n\n\n x={:.0f} \n\n
$M_{DM}$={:.3e} $h^{-1} M_{\odot}$'.format(A, B, C, D), size=20)
KeyError: '200m'
我不知道如何在 python 脚本中进行 LateX 打字?
附件是 运行 我在其中使用与答案中建议的格式相同的代码时的错误消息快照。我是 运行 只安装了 python3.5 的 anaconda 上的这段代码:
将您的 plt.text...
行替换为以下内容:
plt.text(0.05, 0.05, '$R_{{200m}}$={:.0f} kpc physical \n\n $M_{{200m}}$={:.3e} $h^{{-1}} M_\u2609$ \n\n\n\n x={:.0f} \n\n $M_{{DM}}$={:.3e} $h^{{-1}} M_{{\odot}}$'.format(A, B, C, D), size=20)
我只是:
- 将
{\sun}
替换为\u2609
,参见 How to do the astronomical symbol "\sun" in PyX。 - 将每个 LateX 的
{
加倍,因此format
方法不会将其参数放入其中。 - 删除了字符串前的
r
以便\n
会影响。