def dat_plot(datlist,xpos,ypos,normalize=True,epos=None): cols = 2 rows = int(np.ceil(len(datlist)/cols)) fig,ax = pl.subplots(rows,cols,sharex=True,sharey=True) for i,(x,y,name,_,errs) in enumerate(datlist): if normalize: norm = y.mean() fig.axes[i].text(xpos,ypos,"{} {:5.1f}".format(name,norm)) else: norm = 1 fig.axes[i].text(xpos,ypos,"{}".format(name)) s2err = np.array([errs[3],errs[0]]).reshape(2,1) s1err = np.array([errs[2],errs[1]]).reshape(2,1) regx,regy = st.kern_reg(x,y,bins=73) fig.axes[i].plot(x,y/norm,'b.',alpha=0.3) fig.axes[i].plot(regx,regy/norm,'w',linewidth=3.1) fig.axes[i].plot(regx,regy/norm,'r',linewidth=1.2) if epos is not None: ex,ey = epos fig.axes[i].errorbar( ex,ey,yerr=s1err/norm,fmt='b',linewidth=1.5 ) fig.axes[i].errorbar( ex,ey,yerr=s2err/norm,fmt='r',alpha=0.3 ) fig.axes[i].set_xlim(0.8,1.27) xtic,ytic = fig.axes[i].get_xticks(),fig.axes[i].get_yticks() fig.axes[i].xaxis.set_major_formatter(ticker.StrMethodFormatter("{x:3.1f}")) # fig.axes[i].set_xticks(xtic[1:-1]) # fig.axes[i].set_yticks(ytic[1:-1]) return fig
def prop_plot(ax,x,y,conf,bins=73): regx,regy = st.kern_reg(x,y,bins=bins) ax.plot(x,y,'b.',alpha=0.1,label=conf.get("label","")) ax.plot(regx,regy,'w',linewidth=2.1) ax.plot(regx,regy,'r',linewidth=1.2) ax.set_title(conf["title"]) ax.set_ylabel(conf["ylabel"]) ax.set_xlabel(conf["xlabel"]) if "label" in conf: ax.legend() if "ylim" in conf: ax.set_ylim(conf["ylim"])
def addreg(fig,measure,line,bins=73,colour="r",label=""): bot = 0; vel = 1; fwhm = 2; as12 = 3; fw13 = 4; as13 = 5; fw23 = 6; as23 = 7; err = 8; ew = 9; con = 10; x = measure[:,con] ys =[ measure[:,ew]/measure[:,ew].mean(), measure[:,vel], measure[:,bot], measure[:,fw13]/line.width, measure[:,fwhm]/line.width, measure[:,fw23]/line.width, (measure[:,as13]-measure[:,as13].mean())/line.width, (measure[:,as12]-measure[:,as13].mean())/line.width, (measure[:,as23]-measure[:,as13].mean())/line.width, ] for i,y in enumerate(ys): regx,regy = st.kern_reg(x,y,bins=bins) fig.axes[i].plot(regx,regy,color=colour) return fig