1

我正在尝试使用cornerPython 中的包格式化角图。据我所知,有 command 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()

这使

后一个代码的结果

我可以输入这样的title_fmt = '.2g'

结果格式为“.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

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

4

1 回答 1

1

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

于 2021-01-31T05:53:27.977 回答