Как создать живой график matplotlib.pyplot в Google Colab?

К сожалению, невозможно создавать живые графики в записной книжке Google Colab, используя %matplotlib notebook, как в автономной записной книжке jupyter на моем ПК.

Я нашел два похожих вопроса, отвечая на вопрос, как добиться этого для сюжетных графиков (link_1, link_2). Однако я не могу адаптировать его к matplotlib или вообще не знаю, возможно ли это.

Я следую коду из этого руководства здесь: Ссылка на GitHub. В частности, я хотел бы запустить этот код, который создает обратный вызов, отображающий вознаграждение за шаг по этапам обучения:

import matplotlib.pyplot as plt
import numpy as np
%matplotlib notebook


class PlottingCallback(BaseCallback):
    """
    Callback for plotting the performance in realtime.

    :param verbose: (int)
    """
    def __init__(self, verbose=1):
        super(PlottingCallback, self).__init__(verbose)
        self._plot = None

    def _on_step(self) -> bool:
        # get the monitor's data
        x, y = ts2xy(load_results(log_dir), 'timesteps')
      if self._plot is None: # make the plot
          plt.ion()
          fig = plt.figure(figsize=(6,3))
          ax = fig.add_subplot(111)
          line, = ax.plot(x, y)
          self._plot = (line, ax, fig)
          plt.show()
      else: # update and rescale the plot
          self._plot[0].set_data(x, y)
          self._plot[-2].relim()
          self._plot[-2].set_xlim([self.locals["total_timesteps"] * -0.02, 
                                   self.locals["total_timesteps"] * 1.02])
          self._plot[-2].autoscale_view(True,True,True)
          self._plot[-1].canvas.draw()

# Create log dir
log_dir = "/tmp/gym/"
os.makedirs(log_dir, exist_ok=True)

# Create and wrap the environment
env = make_vec_env('MountainCarContinuous-v0', n_envs=1, monitor_dir=log_dir)

plotting_callback = PlottingCallback()

model = PPO2('MlpPolicy', env, verbose=0)
model.learn(20000, callback=plotting_callback)

person Philipp    schedule 30.04.2020    source источник