def plotTriangle(srcfile,samples,burn=0,**kwargs):
#import triangle
import corner
import ugali.analysis.source
import ugali.analysis.mcmc
#matplotlib.rcParams.update({'text.usetex': True})
source = ugali.analysis.source.Source()
source.load(srcfile,section='source')
params = source.get_params()
results = yaml.load(open(srcfile))['results']
samples = ugali.analysis.mcmc.Samples(samples)
names = samples.names
labels = names
truths = [params[n] for n in names]
chain = samples.get(burn=burn,clip=5)
### Triangle plot
#extents = [[0,15e3],[323.6,323.8],[-59.8,-59.7],[0,0.1],[19.5,20.5]]
kwargs.setdefault('extents',None)
kwargs.setdefault('plot_contours',True)
kwargs.setdefault('plot_datapoints',True)
kwargs.setdefault('verbose',False)
kwargs.setdefault('quantiles',[0.16,0.84])
if len(names) > 1:
fig = corner.corner(chain,labels=labels,truths=truths,**kwargs)
else:
fig = plt.figure()
plt.hist(chain,bins=100)
plt.xlabel(names[0])
try:
text = 'RA,DEC = (%.2f,%.2f)\n'%(results['ra'][0],results['dec'][0])
text += '(m-M,D) = (%.1f, %.0f kpc)\n'%(results['distance_modulus'][0],results['distance'][0])
text += r'$r_h$ = %.1f arcmin'%(results['extension_arcmin'][0])+'\n'
text += 'TS = %.1f\n'%results['ts'][0]
text += 'NSamples = %i\n'%(len(chain))
#plt.figtext(0.65,0.90,text,ha='left',va='top')
except KeyError as e:
logger.warning(str(e))
pass
label = map(str.capitalize,source.name.split('_'))
label[-1] = label[-1].upper()
title = '%s'%' '.join(label)
plt.suptitle(title)
############################################################
评论列表
文章目录