docs: def _plot(self):
          """Draw the actual plot.
          """
  
          w = self
          kbos = self.kbos
          re_string = w.FilterVar.get()
          vlist = []
          for name in kbos:
              if not re.search(re_string, name):
                  continue
              vlist.append(name)
              fill = None
              is_colossos_target = False
              for cname in parameters.COLOSSOS:
                  if cname in name:
                      is_colossos_target = True
                      print "ColOSSOS: ", cname
                      break
              is_terminated = False
              for cname in tracking_termination:
                  if cname in name:
                      is_terminated = True
                      print "Terminated", cname
                      break
              is_double = False
              for cname in doubles:
                  if cname in name:
                      is_double = True
                      print 'Needs double:', cname
                      break
              if type(kbos[name]) == type(ephem.EllipticalBody()):
                  try:
                      kbos[name].compute(w.date.get())
                  except Exception as e:
                      logging.error("Failed to compute KBO position. {}".format(name))
                      continue
                  ra = kbos[name].ra
                  dec = kbos[name].dec
                  a = math.radians(10.0 / 3600.0)
                  b = a
                  ang = 0.0
                  point_size = 1
                  yoffset = +10
                  xoffset = +10
              elif isinstance(kbos[name], orbfit.Orbfit):
                  yoffset = -10
                  xoffset = -10
                  kbo = kbos[name]
                  pointing_date = mpc.Time(w.date.get(), scale='utc').jd
                  trail_mid_point = 0
                  for days in range(trail_mid_point * 2 + 1):
                      point_size = days == trail_mid_point and 5 or 1
                      today = mpc.Time(pointing_date - trail_mid_point + days, scale='utc', format='jd')
                      kbo.predict(today, 568)
                      ra = kbo.coordinate.ra.radian
                      dec = kbo.coordinate.dec.radian
                      from astropy import units
                      a = kbo.dra.to(units.radian).value
                      b = kbo.ddec.to(units.radian).value
                      ang = kbo.pa.to(units.radian).value
                      lost = False
                      if a > math.radians(0.3):
                          lost = True
  
                  fill_colour = (lost and "red") or "grey"
                  fill_colour = (is_double and "magenta") or fill_colour
                  fill_colour = (is_colossos_target and "blue") or fill_colour
                  point_colour = (is_terminated and "red") or "black"
                  w.create_point(ra, dec, size=point_size, color=point_colour, fill=fill_colour)
                  if w.show_ellipse.get() == 1 and days == trail_mid_point:
                      if a < math.radians(5.0):
                          w.create_ellipse(ra,
                                           dec,
                                           a,
                                           b,
                                           ang)
                      if w.show_labels.get() == 1:
                          w.label(ra, dec, name, offset=[xoffset, yoffset])
              else:
                  ra = kbos[name]['RA']
                  dec = kbos[name]['DEC']
                  w.create_point(ra, dec, size=4, color='cyan')
                  w.label(ra, dec, name[-2:], offset=[-15, +15])  # truncate object name for plot clutter clarity
  
          vlist.sort()
          for v in vlist:
              w.objList.insert(END, v)
          w.plot_pointings()