首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用plt.text()函数将特殊符号键入到python3生成的绘图中?

如何使用plt.text()函数将特殊符号键入到python3生成的绘图中?
EN

Stack Overflow用户
提问于 2016-09-29 04:37:16
回答 1查看 1.4K关注 0票数 2

我试图在python脚本中的空图形中键入一个文本(包括一些天体物理符号,如太阳质量和哈勃参数):

代码语言:javascript
复制
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运行脚本后,我将收到以下错误消息:

代码语言:javascript
复制
  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上运行这段代码:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-29 10:24:14

用以下内容替换您的plt.text...行:

代码语言:javascript
复制
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)

我只是:

  1. {\sun}替换为\u2609,请参见How to do the astronomical symbol "\sun" in PyX
  2. 将每个{的LateX增加一倍,因此format方法不会将其参数放入其中。
  3. 删除字符串之前的r,这样\n就会影响。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39761510

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档