docs: def plot_mag(fignum, datablock, s, num, units, norm):
      """
      plots magnetization against (de)magnetizing temperature or field
  
      Parameters
      _________________
      fignum : matplotlib figure number for plotting
      datablock : nested list of [step, 0, 0, magnetization, 1,quality]
      s : string for title
      num : matplotlib figure number, can set to 1
      units : [T,K,U] for tesla, kelvin or arbitrary
      norm : [True,False] if True, normalize
  
      Effects
      ______
          plots figure
      """
      global globals, graphmenu
      Ints = []
      for plotrec in datablock:
          Ints.append(plotrec[3])
      Ints.sort()
      plt.figure(num=fignum)
      T, M, Tv, recnum = [], [], [], 0
      Mex, Tex, Vdif = [], [], []
      recbak = []
      for rec in datablock:
          if rec[5] == 'g':
              if units == "T":
                  T.append(rec[0] * 1e3)
                  Tv.append(rec[0] * 1e3)
                  if recnum > 0:
                      Tv.append(rec[0] * 1e3)
              elif units == "U":
                  T.append(rec[0])
                  Tv.append(rec[0])
                  if recnum > 0:
                      Tv.append(rec[0])
              elif units == "K":
                  T.append(rec[0] - 273)
                  Tv.append(rec[0] - 273)
                  if recnum > 0:
                      Tv.append(rec[0] - 273)
              elif "T" in units and "K" in units:
                  if rec[0] < 1.:
                      T.append(rec[0] * 1e3)
                      Tv.append(rec[0] * 1e3)
                  else:
                      T.append(rec[0] - 273)
                      Tv.append(rec[0] - 273)
                      if recnum > 0:
                          Tv.append(rec[0] - 273)
              else:
                  T.append(rec[0])
                  Tv.append(rec[0])
                  if recnum > 0:
                      Tv.append(rec[0])
              if norm:
                  M.append(old_div(rec[3], Ints[-1]))
              else:
                  M.append(rec[3])
              if recnum > 0 and len(rec) > 0 and len(recbak) > 0:
                  v = []
                  if recbak[0] != rec[0]:
                      V0 = pmag.dir2cart([recbak[1], recbak[2], recbak[3]])
                      V1 = pmag.dir2cart([rec[1], rec[2], rec[3]])
                      for el in range(3):
                          v.append(abs(V1[el] - V0[el]))
                      vdir = pmag.cart2dir(v)
                      # append vector difference
                      Vdif.append(old_div(vdir[2], Ints[-1]))
                      Vdif.append(old_div(vdir[2], Ints[-1]))
              recbak = []
              for el in rec:
                  recbak.append(el)
              delta = .005 * M[0]
              if num == 1:
                  if recnum % 2 == 0:
                      plt.text(T[-1] + delta, M[-1],
                               (' ' + str(recnum)), fontsize=9)
              recnum += 1
          else:
              if rec[0] < 200:
                  Tex.append(rec[0] * 1e3)
              if rec[0] >= 200:
                  Tex.append(rec[0] - 273)
              Mex.append(old_div(rec[3], Ints[-1]))
              recnum += 1
      if globals != 0:
          globals.MTlist = T
          globals.MTlisty = M
      if len(Mex) > 0 and len(Tex) > 0:
          plt.scatter(Tex, Mex, marker='d', color='k')
      if len(Vdif) > 0:
          Vdif.append(old_div(vdir[2], Ints[-1]))
          Vdif.append(0)
      if Tv:
          Tv.append(Tv[-1])
      plt.plot(T, M)
      plt.plot(T, M, 'ro')
      if len(Tv) == len(Vdif) and norm:
          plt.plot(Tv, Vdif, 'g-')
      if units == "T":
          plt.xlabel("Step (mT)")
      elif units == "K":
          plt.xlabel("Step (C)")
      elif units == "J":
          plt.xlabel("Step (J)")
      else:
          plt.xlabel("Step [mT,C]")
      if norm == 1:
          plt.ylabel("Fractional Magnetization")
      if norm == 0:
          plt.ylabel("Magnetization")
      plt.axvline(0, color='k')
      plt.axhline(0, color='k')
      tstring = s
      plt.title(tstring)
      plt.draw()