docs: def plot_places(self):
          '''Plot places where the agent has been and generated a spirograph.
          '''
          from matplotlib import pyplot as plt
          fig, ax = plt.subplots()
          x = []
          y = []
  
          if len(self.arg_history) > 1:
              xs = []
              ys = []
              for p in self.arg_history:
                  xs.append(p[0])
                  ys.append(p[1])
              ax.plot(xs, ys, color=(0.0, 0.0, 1.0, 0.1))
  
          for a in self.A:
              if a.self_criticism == 'pass':
                  args = a.framings[a.creator]['args']
                  x.append(args[0])
                  y.append(args[1])
  
          sc = ax.scatter(x, y, marker="x", color='red')
          ax.set_xlim([-200, 200])
          ax.set_ylim([-200, 200])
  
          agent_vars = "{}_{}_{}{}_last={}_stmem=list{}_veto={}_sc={}_jump={}_sw={}_mr={}_maxN".format(
              self.name, self.age, self.env_learning_method, self.env_learning_amount, self.env_learn_on_add,
              self.stmem.length, self._novelty_threshold, self._own_threshold,
              self.jump, self.search_width, self.move_radius)
  
          if self.logger is not None:
              imname = os.path.join(self.logger.folder, '{}.png'.format(agent_vars))
              plt.savefig(imname)
              plt.close()
  
              fname = os.path.join(self.logger.folder, '{}.txt'.format(agent_vars))
              with open(fname, "w") as f:
                  f.write(" ".join([str(e) for e in xs]))
                  f.write("\n")
                  f.write(" ".join([str(e) for e in ys]))
                  f.write("\n")
                  f.write(" ".join([str(e) for e in x]))
                  f.write("\n")
                  f.write(" ".join([str(e) for e in y]))
                  f.write("\n")
          else:
              plt.show()