TCAS figure versions
authorDan White <dan@whiteaudio.com>
Fri, 20 Jun 2014 05:40:59 +0000 (00:40 -0500)
committerDan White <dan@whiteaudio.com>
Fri, 20 Jun 2014 05:40:59 +0000 (00:40 -0500)
python-lib/test-data/cal-histograms.pdf [new file with mode: 0644]
python-lib/test-data/cal-trajectories.pdf [new file with mode: 0644]
python-lib/test-data/cal-trajectories.py
python-lib/test-data/chip14/arb0/vios-offset-gm/matplotlibrc

diff --git a/python-lib/test-data/cal-histograms.pdf b/python-lib/test-data/cal-histograms.pdf
new file mode 100644 (file)
index 0000000..2829958
Binary files /dev/null and b/python-lib/test-data/cal-histograms.pdf differ
diff --git a/python-lib/test-data/cal-trajectories.pdf b/python-lib/test-data/cal-trajectories.pdf
new file mode 100644 (file)
index 0000000..593a463
Binary files /dev/null and b/python-lib/test-data/cal-trajectories.pdf differ
index f8eec5d92d465ee03b253a4d006275e67ff45044..748e37e4700e692d11885faed34a223f1ecf430a 100644 (file)
@@ -8,8 +8,6 @@ from random import sample as rand_sample
 
 
 
-infiles1 = sorted(glob('chip01/*.npz'))
-infiles2 = sorted(glob('chip02/*.npz'))
 
 #N_RUNS = min(len(infiles), 8)
 N_RUNS = 0
@@ -23,151 +21,240 @@ N_COLS = 4
 nrun = 0
 
 
-# chip01
-#
-def loadrun(infiles):
-    cal_values = []
-    cal_outs = []
-    cal_nevals = []
-    cal_means = []
-    cal_stds = []
-
-    cal_guesses = []
-    cal_results = []
-
-    nrun = 0
-
-    for infile in infiles:
-    #for infile in sorted(glob('*.npz')):
-    #for infile in sorted(glob('2012-09-03_1*.npz')):
-        d = np.load(infile)
-
-        #print infile, d.keys()
-
-        guesses = d['guesses']
-        results = d['results']
-        nevals = d['nevals']
-
-        d.close() # close file descriptor
-
-        cal_values.append(guesses[-1, :, :])
-
-        # results are zeros after [nevals:]
-        # pick off the last real measurement
-        r = zeros_like(results[-1, :, :])
-        for i in range(r.shape[0]):
-            for j in range(r.shape[1]):
-                r[i, j] = results[nevals[i,j]-1, i, j]
-        cal_outs.append(r)
-
-        #map(cal_nevals.append, nevals.flat)
-
-        cal_guesses.append(guesses)
-        cal_results.append(results)
-        cal_nevals.append(nevals)
-
-
-        #cal_outs.append(results[-1, :, :])
-        nrun += 1
-
-    cv = array(cal_values)
-    co = array(cal_outs)
-    cn = array(cal_nevals)
-    cg = array(cal_guesses)
-    cr = array(cal_results)
-
-    out = {'cv': cv,
-           'co': co,
-           'cn': cn,
-           'cg': cg,
-           'cr': cr,
-           }
-    return out
-
-
-class s:
-    pass
-
+if 1:
+    infiles1 = sorted(glob('chip01/*.npz'))
+    infiles2 = sorted(glob('chip02/*.npz'))
+
+    def loadrun(infiles):
+        cal_values = []
+        cal_outs = []
+        cal_nevals = []
+        cal_means = []
+        cal_stds = []
+
+        cal_guesses = []
+        cal_results = []
+
+        nrun = 0
+
+        for infile in infiles:
+        #for infile in sorted(glob('*.npz')):
+        #for infile in sorted(glob('2012-09-03_1*.npz')):
+            d = np.load(infile)
+
+            #print infile, d.keys()
+
+            guesses = d['guesses']
+            results = d['results']
+            nevals = d['nevals']
+
+            d.close() # close file descriptor
+
+            cal_values.append(guesses[-1, :, :])
+
+            # results are zeros after [nevals:]
+            # pick off the last real measurement
+            r = zeros_like(results[-1, :, :])
+            for i in range(r.shape[0]):
+                for j in range(r.shape[1]):
+                    r[i, j] = results[nevals[i,j]-1, i, j]
+            cal_outs.append(r)
+
+            #map(cal_nevals.append, nevals.flat)
+
+            cal_guesses.append(guesses)
+            cal_results.append(results)
+            cal_nevals.append(nevals)
+
+
+            #cal_outs.append(results[-1, :, :])
+            nrun += 1
+
+        cv = array(cal_values)
+        co = array(cal_outs)
+        cn = array(cal_nevals)
+        cg = array(cal_guesses)
+        cr = array(cal_results)
+
+        out = {'cv': cv,
+            'co': co,
+            'cn': cn,
+            'cg': cg,
+            'cr': cr,
+            }
+        return out
+
+
+    out1 = loadrun(infiles1)
+    out2 = loadrun(infiles2)
+
+
+    #sample_channels = (0, 2)
+
+    sample_guesses = [
+        out1['cg'][-1][:, 0, 0],
+        out1['cg'][-1][:, 0, 2],
+        out2['cg'][-1][:, 0, 0],
+        out2['cg'][-1][:, 0, 2],
+    ]
+
+    sample_results = [
+        out1['cr'][-1][:, 0, 0],
+        out1['cr'][-1][:, 0, 2],
+        out2['cr'][-1][:, 0, 0],
+        out2['cr'][-1][:, 0, 2],
+    ]
+
+    sample_nevals = [
+        out1['cn'][-1][0, 0],
+        out1['cn'][-1][0, 2],
+        out2['cn'][-1][0, 0],
+        out2['cn'][-1][0, 2],
+    ]
+
+    sample_cv= [
+        out1['cv'][:, 0, 0],
+        out1['cv'][:, 0, 2],
+        out2['cv'][:, 0, 0],
+        out2['cv'][:, 0, 2],
+    ]
+
+    sample_co= [
+        out1['co'][:, 0, 0],
+        out1['co'][:, 0, 2],
+        out2['co'][:, 0, 0],
+        out2['co'][:, 0, 2],
+    ]
+
+    savez('foo.npz',
+        sample_guesses=sample_guesses,
+        sample_results=sample_results,
+        sample_nevals=sample_nevals,
+        sample_cv=sample_cv,
+        sample_co=sample_co,
+          )
+else:
+    d = np.load('foo.npz')
+    sample_guesses = d['sample_guesses']
+    sample_results = d['sample_results']
+    sample_nevals = d['sample_nevals']
+    sample_cv = d['sample_cv']
+    sample_co = d['sample_co']
+
+
+names = ['\#1-00A',
+         '\#1-02A',
+         '\#2-00A',
+         '\#2-02A'
+         ]
 
-out1 = loadrun(infiles1)
-out2 = loadrun(infiles2)
 
+if 1:
+    #
+    # trajectories
+    #
+    figure(figsize=(3.5, 2.5))
+    subplots_adjust(top=0.93, bottom=0.15, left=0.14, right=0.98)
+
+    for i in range(len(names)):
+        g = sample_guesses[i]
+        r = 1e3*(2.5/2/2**13)*sample_results[i]
+
+        #
+        # top row
+        #
+        ax = subplot(N_PLOTS, N_COLS, i+1)
+        plot(g[:sample_nevals[i]+1], '.-')
 
-#sample_channels = (0, 2)
+        ylim((0, 127))
+        xlim((0, 14))
+        ax.set_xticks(range(0, 15, 4))
+        ax.set_xticklabels([''] * len(ax.get_xticks()))
+
+        title(r'%s' % names[i], fontname='courier', fontsize='medium')
+        if i == 0:
+            ylabel('Offset code')
+            labelx = -0.5
+            ax.yaxis.set_label_coords(labelx, 0.5)
+        else:
+            ax.set_yticklabels([''] * len(ax.get_yticks()))
+
+
+        #
+        # bottom row
+        #
+        ax = subplot(N_PLOTS, N_COLS, N_COLS+i+1)
+        plot(1e-3*r[:sample_nevals[i]+1], '.-')
+        hlines(0, -1, 15, linewidth=0.5, color='0.40')
 
-sample_guesses = [
-    out1['cg'][-1][:, 0, 0],
-    out1['cg'][-1][:, 0, 2],
-    out2['cg'][-1][:, 0, 0],
-    out2['cg'][-1][:, 0, 2],
-]
+        xlim((0, 14))
+        ax.set_xticks(range(0, 15, 4))
 
-sample_results = [
-    out1['cr'][-1][:, 0, 0],
-    out1['cr'][-1][:, 0, 2],
-    out2['cr'][-1][:, 0, 0],
-    out2['cr'][-1][:, 0, 2],
-]
+        #xlabel('Step')
+        if i == 0:
+            ylabel('$V_{out} (\mathrm{V})$', labelpad=0)
+            ax.yaxis.set_label_coords(labelx, 0.5)
+        else:
+            ax.set_yticklabels([''] * len(ax.get_yticks()))
 
-sample_nevals = [
-    out1['cn'][-1][0, 0],
-    out1['cn'][-1][0, 2],
-    out2['cn'][-1][0, 0],
-    out2['cn'][-1][0, 2],
-]
+    suptitle('Step number', x=0.55, y=0.06)
+    savefig('cal-trajectories.pdf')
 
 
-names = ['#1-00A',
-         '#1-02A',
-         '#2-00A',
-         '#2-02A'
-         ]
 
 if 1:
-    figure(figsize=(6.0, 3.5))
-    subplots_adjust(top=0.93, bottom=0.12, left=0.10, right=0.98)
-
-    #guesses = out1['cg'][-1]
-    #results = out1['cr'][-1]
-    #nevals = out1['cn'][-1]
-    #cv = out1['cv']
-    #co = out1['co']
-
-    for i,k in enumerate(sample_channels):
-        g = guesses[:, 0, k]
-        r = 1e3*(2.5/2/2**13)*results[:, 0, k]
-
-        subplot(N_PLOTS, N_COLS, i+1)
-        plot(g[:nevals[0,k]+1], '.-')
-        ylim((0, 127))
-        ylabel('Channel %02i-A' % k)
-        xlim((-1, 13))
-
-        subplot(N_PLOTS, N_COLS, N_COLS+i+1)
-        plot(1e-3*r[:nevals[0,k]+1], '.-')
-        hlines(0, -1, 15, linewidth=0.5, color='0.40')
-        xlim((-1, 13))
-
-        title('%s' % name[i], fontsize='medium')
-        ax.set_xticks(range(0, 15, 4))
-
-        #subplot(N_PLOTS, N_COLS, N_COLS*i+3)
-        #data = cv[:, 0, k]
-        #hist(data, bins=range(128), align='left')
-        #xlim((data.min()-1, data.max()+1))
+    #
+    # histograms
+    #
+    fig = figure(figsize=(3.5, 2.5))
+
+    subplots_adjust(top=0.93,
+                    bottom=0.25,
+                    left=0.13,
+                    right=0.98,
+                    hspace=0.30)
+
+    for i in range(len(names)):
+        g = sample_guesses[i]
+        r = 1e3*(2.5/2/2**13)*sample_results[i]
+
+        #
+        # top row
+        #
+        ax = subplot(N_PLOTS, N_COLS, i+1)
+        data = sample_cv[i]
+        hist(data, bins=range(128), align='left')
         #xlim((0, 127))
 
-        #ax = subplot(N_PLOTS, N_COLS, N_COLS*i+4)
-        #data = 1e3*(2.5/2/2**13)*co[:, 0, k]
-        #dm = max((abs(data.min()), abs(data.max())))
-        #print dm
-        #dm = max(dm, 50)
-        #hist(data, bins=100, range=(-dm, dm), align='left')
-        #xlim((-dm, dm))
-        #ylim((0, 50))
-        #dmean = data.mean()
-        #dstd = data.std()
-        #print nrun, dmean, dstd
+        xlabels = range(data.min(), data.max()+1)
+        ax.set_xticks(xlabels)
+        xlim((data.min()-2, data.max()+2))
+        ax.set_xticklabels(xlabels,
+                           size='small',
+                           rotation=90)
+
+        title(r'%s' % names[i], fontname='courier', fontsize='medium')
+        ax.set_yticklabels([''] * len(ax.get_yticks()))
+        if i == 0:
+            ylabel('Code')
+            labelx = -0.4
+            #ax.yaxis.set_label_coords(labelx, 0.5)
+        else:
+            pass
+
+
+        #
+        # bottom row
+        #
+        ax = subplot(N_PLOTS, N_COLS, N_COLS+i+1)
+        data = 1e3*(2.5/2/2**13)*sample_co[i]
+        dm = max((abs(data.min()), abs(data.max())))
+        dm = max(dm, 50)
+        hist(data, bins=100, range=(-dm, dm), align='left')
+        dmean = data.mean()
+        dstd = data.std()
+
+        xlabel(r'$\sigma\!=\!%4.1f$mV' % dstd, size='small')
 
         #text(0.97, 0.95, r'$\sigma\!=\!%4.1f$mV' % dstd,
                 #horizontalalignment='right',
@@ -175,87 +262,27 @@ if 1:
                 #bbox=dict(facecolor='r', alpha=0.5, boxstyle="round"),
                 #transform = ax.transAxes)
 
-    subplot(N_PLOTS, N_COLS, 1)
-    ax = plt.gca()
-    title('Offset code', fontsize='medium')
-    ax.set_xticks(range(0, 15, 4))
-
-    subplot(N_PLOTS, N_COLS, (N_PLOTS-1)*N_COLS+1)
-    ax = plt.gca()
-    ax.set_xticks(range(0, 15, 4))
-    xlabel('Step')
-
-
-    subplot(N_PLOTS, N_COLS, 2)
-    ax = plt.gca()
-    title('$V_{out}$', fontsize='medium')
-    ax.set_xticks(range(0, 15, 4))
-    ax.set_yticklabels([''] * len(ax.get_yticks()))
-
-    subplot(N_PLOTS, N_COLS, (N_PLOTS-1)*N_COLS+2)
-    ax = plt.gca()
-    ax.set_xticks(range(0, 15, 4))
-    ax.set_yticklabels([''] * len(ax.get_yticks()))
-    xlabel('Step')
-
-
-    subplot(N_PLOTS, N_COLS, 3)
-    ax = plt.gca()
-    title('Code hist.', fontsize='medium')
-    ax.set_xticks(range(0, 129, 64))
-    ax.set_xticklabels([''] * len(ax.get_xticks()))
-    ax.set_yticklabels([''] * len(ax.get_yticks()))
-
-    subplot(N_PLOTS, N_COLS, (N_PLOTS-1)*N_COLS+3)
-    ax = plt.gca()
-    ax.set_xticks(range(0, 129, 64))
-    #ax.set_xticklabels([''] * len(ax.get_xticks()))
-    ax.set_yticklabels([''] * len(ax.get_yticks()))
-    xlabel('OTA tuning DAC')
-
-
-    subplot(N_PLOTS, N_COLS, 4)
-    ax = plt.gca()
-    ax.set_xticks(range(-80, 81, 40))
-    ax.set_xticklabels([''] * len(ax.get_xticks()))
-    ax.set_yticklabels([''] * len(ax.get_yticks()))
-    title('$V_{out}$ hist.', fontsize='medium')
-
-    subplot(N_PLOTS, N_COLS, (N_PLOTS-1)*N_COLS+4)
-    ax = plt.gca()
-    ax.set_xticks(range(-80, 81, 40))
-    #ax.set_xticklabels([''] * len(ax.get_xticks()))
-    ax.set_yticklabels([''] * len(ax.get_yticks()))
-    xlabel('V_{oos}$ (mV)')
-
-    #suptitle('Calibration data from %s\nNruns = %i' %
-            #(os.path.basename(os.getcwd()),
-                #len(infiles)))
-
-    #savefig(os.path.basename(os.getcwd()) + '-cal-raw.pdf')
-    savefig('cal-trajectories.pdf')
+        xlabels = range(-80, 150, 40)
+        ax.set_xticks(xlabels)
+        ax.set_xticklabels(xlabels,
+                           size='small',
+                           rotation=90)
+        xlim((-100, 100))
 
-#interactive(False)
-interactive(True)
+        ax.set_yticklabels([''] * len(ax.get_yticks()))
+        if i == 0:
+            ylabel('$V_{out}$')
+        else:
+            pass
+
+    fig.text(0.01, 0.59, 'Relative bin counts', rotation=90,
+             va='center')
+
+    fig.text(0.56, 0.01, 'Output offsets (mV)',
+             ha='center',
+             va='bottom')
 
-#if 0:
-    #figure()
-    #data = cv.flatten()
-    #hist(data, bins=range(128), align='left')
-    #xlabel('OTA tuning DAC value')
-    #title('Channel offset tuning histogram\n48x2 channels x %i runs' %
-            #(len(infiles),))
-    #savefig('caldac-hist.pdf')
-
-
-    #figure()
-    #data = co.flatten()
-    #hist(data, bins=range(-1500, 1500, 10), align='left')
-    #xlabel('Tuned channel output offset voltage (mV)')
-    #title('Channel offset tuning histogram\n48x2 channels x %i runs' %
-            #(len(infiles),))
-    #savefig('calout-hist.pdf')
-
-#print sample_runs
-#print [infiles1[s] for s in sample_runs]
+    savefig('cal-histograms.pdf')
+
+interactive(True)
 
index 2f482b7beccd374486323e65d592b5138d37b154..258a1d0b15f9b64bcf5b9c59abc37770b57c9fe0 100644 (file)
@@ -116,7 +116,8 @@ font.style          : normal
 # small, medium, large, x-large, xx-large, larger, or smaller
 #font.size           : 12.0
 #font.size           : 8
-font.size           : 12.0
+#font.size           : 12.0
+font.size           : 10.0  # IEEEtran
 #font.serif          : Bitstream Vera Serif, New Century Schoolbook, Century Schoolbook L, Utopia, ITC Bookman, Bookman, Nimbus Roman No9 L, Times New Roman, Times, Palatino, Charter, serif
 #font.serif          : Times New Roman
 font.serif          : computer modern roman