code: def plot_stats(statistics, ylog=False, view=False, filename='avg_fitness.svg'):
      
      if plt is None:
          warnings.warn("This display is not available due to a missing optional dependency (matplotlib)")
          return
  
      generation = range(len(statistics.most_fit_genomes))
      best_fitness = [c.fitness for c in statistics.most_fit_genomes]
      avg_fitness = np.array(statistics.get_fitness_mean())
      stdev_fitness = np.array(statistics.get_fitness_stdev())
  
      plt.plot(generation, avg_fitness, 'b-', label="average")
      plt.plot(generation, avg_fitness - stdev_fitness, 'g-.', label="-1 sd")
      plt.plot(generation, avg_fitness + stdev_fitness, 'g-.', label="+1 sd")
      plt.plot(generation, best_fitness, 'r-', label="best")
  
      plt.title("Population's average and best fitness")
      plt.xlabel("Generations")
      plt.ylabel("Fitness")
      plt.grid()
      plt.legend(loc="best")
      if ylog:
          plt.gca().set_yscale('symlog')
  
      plt.savefig(filename)
      if view:
          plt.show()
  
      plt.close()
docs: Plots the population's average and best fitness.