docs: def draw_spec_eqarea(self):
          """
          Calculates point positions and draws the Specimen eqarea plot on
          canvas2
          """
          draw_net(self.specimen_eqarea)
          self.specimen_eqarea.text(-1.2, 1.15, "specimen: %s" % self.s, {
                                    'family': self.font_type, 'fontsize': 10*self.GUI_RESOLUTION, 'style': 'normal', 'va': 'center', 'ha': 'left'})
  
          x_eq = array([row[0] for row in self.zij_norm])
          y_eq = array([row[1] for row in self.zij_norm])
          z_eq = abs(array([row[2] for row in self.zij_norm]))
  
          # remove bad data from plotting:
          x_eq_good, y_eq_good, z_eq_good = [], [], []
          x_eq_bad, y_eq_bad, z_eq_bad = [], [], []
          for i in range(len(list(self.zij_norm))):
              if self.Data[self.s]['measurement_flag'][i] == 'g':
                  x_eq_good.append(self.zij_norm[i][0])
                  y_eq_good.append(self.zij_norm[i][1])
                  z_eq_good.append(abs(self.zij_norm[i][2]))
              else:
                  x_eq_bad.append(self.zij_norm[i][0])
                  y_eq_bad.append(self.zij_norm[i][1])
                  z_eq_bad.append(abs(self.zij_norm[i][2]))
  
          x_eq_good, y_eq_good, z_eq_good = array(
              x_eq_good), array(y_eq_good), array(z_eq_good)
          x_eq_bad, y_eq_bad, z_eq_bad = array(
              x_eq_bad), array(y_eq_bad), array(z_eq_bad)
  
          R_good = array(sqrt(1-z_eq_good)/sqrt(x_eq_good**2 +
                                                y_eq_good**2))  # from Collinson 1983
          # from Collinson 1983
          R_bad = array(sqrt(1-z_eq_bad)/sqrt(x_eq_bad**2+y_eq_bad**2))
  
          eqarea_data_x_good = y_eq_good*R_good
          eqarea_data_y_good = x_eq_good*R_good
  
          eqarea_data_x_bad = y_eq_bad*R_bad
          eqarea_data_y_bad = x_eq_bad*R_bad
  
          self.specimen_eqarea.plot(
              eqarea_data_x_good, eqarea_data_y_good, lw=0.5, color='gray')  # ,zorder=0)
  
          # --------------------
          # scatter plot
          # --------------------
  
          x_eq_dn, y_eq_dn, z_eq_dn, eq_dn_temperatures = [], [], [], []
          x_eq_dn = array([row[0] for row in self.zij_norm if row[2] > 0])
          y_eq_dn = array([row[1] for row in self.zij_norm if row[2] > 0])
          z_eq_dn = abs(array([row[2] for row in self.zij_norm if row[2] > 0]))
  
          if len(x_eq_dn) > 0:
              # from Collinson 1983
              R = array(sqrt(1-z_eq_dn)/sqrt(x_eq_dn**2+y_eq_dn**2))
              eqarea_data_x_dn = y_eq_dn*R
              eqarea_data_y_dn = x_eq_dn*R
              self.specimen_eqarea.scatter([eqarea_data_x_dn], [eqarea_data_y_dn], marker='o',
                                           edgecolor='black', facecolor="#808080", s=15*self.GUI_RESOLUTION, lw=1, clip_on=False)
  
          x_eq_up, y_eq_up, z_eq_up = [], [], []
          x_eq_up = array([row[0] for row in self.zij_norm if row[2] <= 0])
          y_eq_up = array([row[1] for row in self.zij_norm if row[2] <= 0])
          z_eq_up = abs(array([row[2] for row in self.zij_norm if row[2] <= 0]))
          if len(x_eq_up) > 0:
              # from Collinson 1983
              R = array(sqrt(1-z_eq_up)/sqrt(x_eq_up**2+y_eq_up**2))
              eqarea_data_x_up = y_eq_up*R
              eqarea_data_y_up = x_eq_up*R
              self.specimen_eqarea.scatter([eqarea_data_x_up], [eqarea_data_y_up], marker='o',
                                           edgecolor='black', facecolor="#FFFFFF", s=15*self.GUI_RESOLUTION, lw=1, clip_on=False)
  
          # self.preferences['show_eqarea_treatments']=True
          if self.preferences['show_eqarea_treatments']:
              for i in range(len(self.zijdblock_steps)):
                  self.specimen_eqarea.text(eqarea_data_x[i], eqarea_data_y[i], "%.1f" % float(
                      self.zijdblock_steps[i]), fontsize=8*self.GUI_RESOLUTION, color="0.5")
  
          # add line to show the direction of the x axis in the Zijderveld plot
  
          if str(self.orthogonal_box.GetValue()) in ["X=best fit line dec", "X=NRM dec"]:
              XY = []
              if str(self.orthogonal_box.GetValue()) == "X=NRM dec":
                  dec_zij = self.zijblock[0][1]
                  XY = pmag.dimap(dec_zij, 0)
              if str(self.orthogonal_box.GetValue()) == "X=best fit line dec":
                  if 'specimen_dec' in list(self.current_fit.pars.keys()) and type(self.current_fit.pars['specimen_dec']) != str:
                      dec_zij = self.current_fit.pars['specimen_dec']
                      XY = pmag.dimap(dec_zij, 0)
              if XY != []:
                  self.specimen_eqarea.plot(
                      [0, XY[0]], [0, XY[1]], ls='-', c='gray', lw=0.5)  # ,zorder=0)
  
          self.canvas2.draw()