docs: def chi_magic2(path_to_file='.', file_name='magic_measurements.txt',
                save=False, save_folder='.', fmt='svg'):
      """
      Generates plots that compare susceptibility to temperature at different
      frequencies.
  
      Optional Parameters (defaults are used if not specified)
      ----------
      path_to_file : path to directory that contains file (default is current directory, '.')
      file_name : name of file to be opened (default is 'magic_measurements.txt')
      save : boolean argument to save plots (default is False)
      save_folder : relative directory where plots will be saved (default is current directory, '.')
      """
      cont, FTinit, BTinit, k = "", 0, 0, 0
      complete_path = os.path.join(path_to_file, file_name)
      Tind, cont = 0, ""
      EXP = ""
      #
      meas_data, file_type = pmag.magic_read(complete_path)
      #
      # get list of unique experiment names
      #
      # initialize some variables (a continuation flag, plot initialization
      # flags and the experiment counter
      experiment_names = []
      for rec in meas_data:
          if rec['magic_experiment_name'] not in experiment_names:
              experiment_names.append(rec['magic_experiment_name'])
      #
      # hunt through by experiment name
      if EXP != "":
          try:
              k = experiment_names.index(EXP)
          except:
              print("Bad experiment name")
              sys.exit()
      while k < len(experiment_names):
          e = experiment_names[k]
          if EXP == "":
              print(e, k + 1, 'out of ', len(experiment_names))
      #
      # initialize lists of data, susceptibility, temperature, frequency and
      # field
          X, T, F, B = [], [], [], []
          for rec in meas_data:
              methcodes = rec['magic_method_codes']
              meths = methcodes.strip().split(':')
              if rec['magic_experiment_name'] == e and "LP-X" in meths:  # looking for chi measurement
                  if 'measurement_temp' not in list(rec.keys()):
                      rec['measurement_temp'] = '300'  # set defaults
                  if 'measurement_freq' not in list(rec.keys()):
                      rec['measurement_freq'] = '0'  # set defaults
                  if 'measurement_lab_field_ac' not in list(rec.keys()):
                      rec['measurement_lab_field_ac'] = '0'  # set default
                  X.append(float(rec['measurement_x']))
                  T.append(float(rec['measurement_temp']))
                  F.append(float(rec['measurement_freq']))
                  B.append(float(rec['measurement_lab_field_ac']))
      #
      # get unique list of Ts,Fs, and Bs
      #
          Ts, Fs, Bs = [], [], []
          for k in range(len(X)):   # hunt through all the measurements
              if T[k] not in Ts:
                  Ts.append(T[k])  # append if not in list
              if F[k] not in Fs:
                  Fs.append(F[k])
              if B[k] not in Bs:
                  Bs.append(B[k])
          Ts.sort()  # sort list of temperatures, frequencies and fields
          Fs.sort()
          Bs.sort()
          if '-x' in sys.argv:
              k = len(experiment_names) + 1  # just plot the one
          else:
              k += 1  # increment experiment number
      #
      # plot chi versus T and F holding B constant
      #
          plotnum = 1  # initialize plot number to 1
          if len(X) > 2:  # if there are any data to plot, continue
              b = Bs[-1]  # keeping field constant and at maximum
              XTF = []  # initialize list of chi versus Temp and freq
              for f in Fs:   # step through frequencies sequentially
                  XT = []  # initialize list of chi versus temp
                  for kk in range(len(X)):  # hunt through all the data
                      if F[kk] == f and B[kk] == b:  # select data with given freq and field
                          XT.append([X[kk], T[kk]])  # append to list
                  XTF.append(XT)  # append list to list of frequencies
              if len(XT) > 1:  # if there are any temperature dependent data
                  plt.figure(num=plotnum, figsize=(5, 5))  # initialize plot
                  # call the plotting function
                  pmagplotlib.plot_xtf(plotnum, XTF, Fs, e, b)
                  pmagplotlib.show_fig(plotnum)
                  plotnum += 1  # increment plot number
              f = Fs[0]  # set frequency to minimum
              XTB = []  # initialize list if chi versus Temp and field
              for b in Bs:  # step through field values
                  XT = []  # initial chi versus temp list for this field
                  for kk in range(len(X)):  # hunt through all the data
                      if F[kk] == f and B[kk] == b:  # select data with given freq and field
                          XT.append([X[kk], T[kk]])  # append to list
                  XTB.append(XT)
              if len(XT) > 1:  # if there are any temperature dependent data
                  plt.figure(num=plotnum, figsize=(5, 5))  # set up plot
                  # call the plotting function
                  pmagplotlib.plot_xtb(plotnum, XTB, Bs, e, f)
                  pmagplotlib.show_fig(plotnum)
                  plotnum += 1  # increment plot number
              if save == True:
                  files = {}
                  PLTS = {}
                  for p in range(1, plotnum):
                      key = str(p)
                      files[key] = e + '_' + key + '.' + fmt
                      PLTS[key] = p
                  for key in list(PLTS.keys()):
                      try:
                          plt.figure(num=PLTS[key])
                          plt.savefig(save_folder + '/' +
                                      files[key].replace('/', '-'))
                      except:
                          print('could not save: ', PLTS[key], files[key])
                          print("output file format not supported ")