def plot_arai(fignum, indata, s, units):
    """
    makes Arai plots for Thellier-Thellier type experiments

    Parameters
    __________
    fignum : figure number of matplotlib plot object
    indata : nested list of data for Arai plots:
        the araiblock of data prepared by pmag.sortarai()
    s : specimen name
    units : [K, J, ""] (kelvin, joules, unknown)
    Effects
    _______
    makes the Arai plot
    """
    global globals
    plt.figure(num=fignum)
    plt.clf()
    if not isServer:
        plt.figtext(.02, .01, version_num)
    x, y, x_zi, y_zi, x_iz, y_iz, xptrm, yptrm, xptrmt, yptrmt = [
    ], [], [], [], [], [], [], [], [], []
    xzptrm, yzptrm = [], []  # zero field ptrm checks
    zptrm_check = []
    first_Z, first_I, ptrm_check, ptrm_tail, zptrm_check = indata[
        0], indata[1], indata[2], indata[3], indata[4]
    if len(indata) > 6:
        if len(indata[-1]) > 1:
            s = s + ":PERP"  # there are Delta checks, must be a LP-PI-M-S perp experiment
    recnum, yes, Nptrm, Nptrmt, diffcum = 0, 0, 0, 0, 0
# plot the NRM-pTRM data
    forVDS = []
    for zrec in first_Z:
        forVDS.append([zrec[1], zrec[2], old_div(zrec[3], first_Z[0][3])])
        ZI = zrec[4]
        if zrec[0] == '0':
            irec = ['0', 0, 0, 0]
        if zrec[0] == '273' and units == 'K':
            irec = ['273', 0, 0, 0]
        else:
            for irec in first_I:
                if irec[0] == zrec[0]:
                    break
# save the NRM data used for calculation in Vi
        x.append(old_div(irec[3], first_Z[0][3]))
        y.append(old_div(zrec[3], first_Z[0][3]))
        if ZI == 1:
            x_zi.append(old_div(irec[3], first_Z[0][3]))
            y_zi.append(old_div(zrec[3], first_Z[0][3]))
        else:
            x_iz.append(old_div(irec[3], first_Z[0][3]))
            y_iz.append(old_div(zrec[3], first_Z[0][3]))
        plt.text(x[-1], y[-1], (' ' + str(recnum)), fontsize=9)
        recnum += 1
# now deal with ptrm checks.
    if len(ptrm_check) != 0:
        for prec in ptrm_check:
            step = prec[0]
            for zrec in first_Z:
                if zrec[0] == step:
                    break
            xptrm.append(old_div(prec[3], first_Z[0][3]))
            yptrm.append(old_div(zrec[3], first_Z[0][3]))
# now deal with zptrm checks.
    if len(zptrm_check) != 0:
        for prec in zptrm_check:
            step = prec[0]
            for zrec in first_Z:
                if zrec[0] == step:
                    break
            xzptrm.append(old_div(prec[3], first_Z[0][3]))
            yzptrm.append(old_div(zrec[3], first_Z[0][3]))
# and the pTRM tails
    if len(ptrm_tail) != 0:
        for trec in ptrm_tail:
            step = trec[0]
            for irec in first_I:
                if irec[0] == step:
                    break
            xptrmt.append(old_div(irec[3], first_Z[0][3]))
            yptrmt.append((old_div(trec[3], first_Z[0][3])))
# now plot stuff
    if len(x) == 0:
        print("Can't do nuttin for ya")
        return
    try:
        if len(x_zi) > 0:
            plt.scatter(x_zi, y_zi, marker='o', c='r',
                        edgecolors="none")  # zero field-infield
        if len(x_iz) > 0:
            plt.scatter(x_iz, y_iz, marker='s', c='b',
                        faceted="True")  # infield-zerofield
    except:
        if len(x_zi) > 0:
            plt.scatter(x_zi, y_zi, marker='o', c='r')  # zero field-infield
        if len(x_iz) > 0:
            plt.scatter(x_iz, y_iz, marker='s', c='b')  # infield-zerofield
    plt.plot(x, y, 'r')
    if globals != 0:
        globals.MTlist = x
        globals.MTlisty = y
    if len(xptrm) > 0:
        plt.scatter(xptrm, yptrm, marker='^', c='g', s=80)
    if len(xzptrm) > 0:
        plt.scatter(xzptrm, yzptrm, marker='v', c='c', s=80)
    if len(xptrmt) > 0:
        plt.scatter(xptrmt, yptrmt, marker='s', c='b', s=80)
    try:
        plt.axhline(0, color='k')
        plt.axvline(0, color='k')
    except:
        pass
    plt.xlabel("pTRM gained")
    plt.ylabel("NRM remaining")
    tstring = s + ': NRM = ' + '%9.2e' % (first_Z[0][3])
    plt.title(tstring)
# put on VDS
    vds = pmag.dovds(forVDS)
    plt.axhline(vds, color='b')
    plt.text(1., vds - .1, ('VDS '), fontsize=9)
def plot_arai ( fignum , indata , s , units ) : global globals plt . figure ( num = fignum ) plt . clf ( ) if not isServer : plt . figtext ( .02 , .01 , version_num ) x , y , x_zi , y_zi , x_iz , y_iz , xptrm , yptrm , xptrmt , yptrmt = [ ] , [ ] , [ ] , [ ] , [ ] , [ ] , [ ] , [ ] , [ ] , [ ] xzptrm , yzptrm = [ ] , [ ] zptrm_check = [ ] first_Z , first_I , ptrm_check , ptrm_tail , zptrm_check = indata [ 0 ] , indata [ 1 ] , indata [ 2 ] , indata [ 3 ] , indata [ 4 ] if len ( indata ) > 6 : if len ( indata [ - 1 ] ) > 1 : s = s + ":PERP" recnum , yes , Nptrm , Nptrmt , diffcum = 0 , 0 , 0 , 0 , 0 forVDS = [ ] for zrec in first_Z : forVDS . append ( [ zrec [ 1 ] , zrec [ 2 ] , old_div ( zrec [ 3 ] , first_Z [ 0 ] [ 3 ] ) ] ) ZI = zrec [ 4 ] if zrec [ 0 ] == '0' : irec = [ '0' , 0 , 0 , 0 ] if zrec [ 0 ] == '273' and units == 'K' : irec = [ '273' , 0 , 0 , 0 ] else : for irec in first_I : if irec [ 0 ] == zrec [ 0 ] : break x . append ( old_div ( irec [ 3 ] , first_Z [ 0 ] [ 3 ] ) ) y . append ( old_div ( zrec [ 3 ] , first_Z [ 0 ] [ 3 ] ) ) if ZI == 1 : x_zi . append ( old_div ( irec [ 3 ] , first_Z [ 0 ] [ 3 ] ) ) y_zi . append ( old_div ( zrec [ 3 ] , first_Z [ 0 ] [ 3 ] ) ) else : x_iz . append ( old_div ( irec [ 3 ] , first_Z [ 0 ] [ 3 ] ) ) y_iz . append ( old_div ( zrec [ 3 ] , first_Z [ 0 ] [ 3 ] ) ) plt . text ( x [ - 1 ] , y [ - 1 ] , ( ' ' + str ( recnum ) ) , fontsize = 9 ) recnum += 1 if len ( ptrm_check ) != 0 : for prec in ptrm_check : step = prec [ 0 ] for zrec in first_Z : if zrec [ 0 ] == step : break xptrm . append ( old_div ( prec [ 3 ] , first_Z [ 0 ] [ 3 ] ) ) yptrm . append ( old_div ( zrec [ 3 ] , first_Z [ 0 ] [ 3 ] ) ) if len ( zptrm_check ) != 0 : for prec in zptrm_check : step = prec [ 0 ] for zrec in first_Z : if zrec [ 0 ] == step : break xzptrm . append ( old_div ( prec [ 3 ] , first_Z [ 0 ] [ 3 ] ) ) yzptrm . append ( old_div ( zrec [ 3 ] , first_Z [ 0 ] [ 3 ] ) ) if len ( ptrm_tail ) != 0 : for trec in ptrm_tail : step = trec [ 0 ] for irec in first_I : if irec [ 0 ] == step : break xptrmt . append ( old_div ( irec [ 3 ] , first_Z [ 0 ] [ 3 ] ) ) yptrmt . append ( ( old_div ( trec [ 3 ] , first_Z [ 0 ] [ 3 ] ) ) ) if len ( x ) == 0 : print ( "Can't do nuttin for ya" ) return try : if len ( x_zi ) > 0 : plt . scatter ( x_zi , y_zi , marker = 'o' , c = 'r' , edgecolors = "none" ) if len ( x_iz ) > 0 : plt . scatter ( x_iz , y_iz , marker = 's' , c = 'b' , faceted = "True" ) except : if len ( x_zi ) > 0 : plt . scatter ( x_zi , y_zi , marker = 'o' , c = 'r' ) if len ( x_iz ) > 0 : plt . scatter ( x_iz , y_iz , marker = 's' , c = 'b' ) plt . plot ( x , y , 'r' ) if globals != 0 : globals . MTlist = x globals . MTlisty = y if len ( xptrm ) > 0 : plt . scatter ( xptrm , yptrm , marker = '^' , c = 'g' , s = 80 ) if len ( xzptrm ) > 0 : plt . scatter ( xzptrm , yzptrm , marker = 'v' , c = 'c' , s = 80 ) if len ( xptrmt ) > 0 : plt . scatter ( xptrmt , yptrmt , marker = 's' , c = 'b' , s = 80 ) try : plt . axhline ( 0 , color = 'k' ) plt . axvline ( 0 , color = 'k' ) except : pass plt . xlabel ( "pTRM gained" ) plt . ylabel ( "NRM remaining" ) tstring = s + ': NRM = ' + '%9.2e' % ( first_Z [ 0 ] [ 3 ] ) plt . title ( tstring ) vds = pmag . dovds ( forVDS ) plt . axhline ( vds , color = 'b' ) plt . text ( 1. , vds - .1 , ( 'VDS ' ) , fontsize = 9 )
makes Arai plots for Thellier-Thellier type experiments

    Parameters
    __________
    fignum : figure number of matplotlib plot object
    indata : nested list of data for Arai plots:
        the araiblock of data prepared by pmag.sortarai()
    s : specimen name
    units : [K, J, ""] (kelvin, joules, unknown)
    Effects
    _______
    makes the Arai plot