def METHOD_NAME(self):
    rospy.logwarn('Plotting results')
    # wrench_norms = np.array(map(np.linalg.norm, self.wrench_history))
    self.target_trajectory = None
    wrench_hist = np.vstack(
        map(lambda o: np.clip(o, [-250, -250, -250], [250, 250, 250]), self.wrench_history)
    )
    q_hist = np.array(self.q_history[:len(wrench_hist)])
    errors = np.array(self.error_history[:len(wrench_hist)])
    # error_norms = np.array(map(np.linalg.norm, self.error_history[:len(wrench_hist)]))
    times = np.array(self.wrench_times[:len(wrench_hist)])
    theta_hat_hist = np.vstack(self.theta_hat_history[:len(wrench_hist)])
    plt.figure(1)
    plt.plot(times, wrench_hist[:, 0], label='force: x')
    plt.plot(times, wrench_hist[:, 1], label='force: y')
    plt.plot(times, wrench_hist[:, 2], label='force: z')
    plt.legend()
    plt.figure(2)
    plt.plot(times, theta_hat_hist[:, 0], label='mass')
    # plt.plot(times, theta_hat_hist[:, 1], label='viscous friction')
    # plt.plot(times, (error_norms * 100), label='error')
    plt.plot(times, errors[:, 0] * 100, label='Error: x (cm)')
    plt.plot(times, errors[:, 1] * 100, label='Error: y (cm)')
    plt.plot(times, errors[:, 2] * 100, label='Error: z (cm)')
    plt.legend()
    plt.show()
    np.savez('analysis', wrenches=wrench_hist, states=q_hist, times=times)