微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在角图中以不同的方式格式化中值和误差?

如何解决如何在角图中以不同的方式格式化中值和误差?

我正在尝试使用 Python 中的 corner 包格式化角图。据我所知,有 title_fmt = *arg 命令,但是它给中位数和误差提供了相同的格式,这对于报告测量误差是不方便的。我需要用 2 个有效数字显示错误,然后在最后一个 sig.fig 处四舍五入中位数。其错误。这是我可以做什么的示例

import numpy as np
from matplotlib import pyplot as plt
import corner

np.random.seed(539)

#   generate data
data = np.random.randn(5000,3)
data[:,0] = data[:,0]*20 + 150.75
data[:,1] = data[:,1] + 7.52
data[:,2] = data[:,2]*5 + 31.25

#   make plot
labels = ['x','y','f']
fig=plt.figure(figsize=(7,7),dpi=100)
fig=corner.corner(
    data,labels=labels,quantiles=(0.16,0.84),show_titles=True,title_fmt='g',use_math_text=True,fig=fig)
fig.show()

给出

results of the latter code

我可以输入像 title_fmt = '.2g' 这样的行,它给出

result formatting as '.2g'

如预期的那样显示较少的 sig.fig。对于错误,但后来我错过了 sig.fig。在中位数和一些错误不显示最后的 sig.fig。当它是 0 时。对于我的例子,我需要得到类似

x = 151 +20
        -19
y = 7.5 +1.0
        -1.0
f = 31.3 +5.2
         -5.0

我已经阅读了 API,除了 title_fmt 选项之外,它没有提供更多解释。如果有人可以提供帮助,请提前致谢。

解决方法

title_fmt = '.2f' 应该用 2 个小数位格式化数字。 这里有所有可能的格式选项: https://docs.python.org/3/reference/lexical_analysis.html#f-strings

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。