def update_plot(self, episode_index):
plot_right_edge = episode_index
plot_left_edge = max(0, plot_right_edge - self.plot_episode_count)
# Update point plot.
x = range(plot_left_edge, plot_right_edge)
y = self.lengths[plot_left_edge:plot_right_edge]
self.point_plot.set_xdata(x)
self.point_plot.set_ydata(y)
self.ax.set_xlim(plot_left_edge, plot_left_edge + self.plot_episode_count)
# Update rolling mean plot.
mean_kernel_size = 101
rolling_mean_data = np.concatenate((np.zeros(mean_kernel_size), self.lengths[plot_left_edge:episode_index]))
rolling_means = pd.rolling_mean(
rolling_mean_data,
window=mean_kernel_size,
min_periods=0
)[mean_kernel_size:]
self.mean_plot.set_xdata(range(plot_left_edge, plot_left_edge + len(rolling_means)))
self.mean_plot.set_ydata(rolling_means)
# Repaint the surface.
plt.draw()
plt.pause(0.0001)
评论列表
文章目录