#! /usr/bin/python3 import scipy.optimize as opt import numpy as np import pandas as pd import matplotlib.pyplot as plt import VisTools.plotting as vt plt.ioff() plt.style.use('bmh') fig, axarr = plt.subplots( 2, 1, figsize=(10, 8), gridspec_kw={'height_ratios':[2, 1]}, sharex="col" ) for f in ["ana", "digi"]: data = pd.read_csv("./adccalib_v18" + f + ".csv", comment="#") data['Dv'] = data['v_pit18'+f] / data['v_keith'] print(data) axarr[0].errorbar( data['adcval'], data['v_pit18'+f], yerr=data['dv_pit18'+f], label="V$_{MONITOR\_48V}$", fmt='.' ) p =axarr[1].errorbar( data['adcval'], data['Dv'], yerr=data['dv_pit18'+f], label=" absolute Error of ADC", fmt='.', alpha=.3 ) # fit to abs dist linfnc = lambda x,m,c: x*m+c pfinal = vt.fit_linear( data.adcval, data.Dv, (0,0) ) axarr[1].plot( data.adcval, linfnc(data.adcval, pfinal[0].n, pfinal[1].n), color=p[0].get_color() ) print( pfinal ) vt.annotate_unc( plt, pfinal[1], name="\Delta 1V8"+f+"[1]", data_pos=(np.mean(data.adcval), 1.1), formatting='f') plt.xlabel('V$_{IN,EXT} / V$') axarr[0].set_ylabel('V$_{IN,PIT} / V$') axarr[0].set_title("PowerIt ADC Calibration: 1V8 Output") axarr[1].set_ylabel('($V_{IN,PIT} / V_{IN,EXT}$) / V') #-plt.savefig("2kw_direct.png") plt.tight_layout() plt.savefig("adccalib_v18" + f + ".pdf", dpi=1000)