def plot_weights()

in neural/linear/receptive_field.py [0:0]


    def plot_weights(self, summarize=True, names_u=[]):

        if len(names_u) == 0:
            names_u = [
                "U Channel " + str(channel_u)
                for channel_u in range(self.n_channels_u)
            ]

        if not summarize:

            # plot forcing weights
            fig, axes = plt.subplots(self.n_channels_u, 1, sharex=True)

            for increment, channel_u in enumerate(
                    list(range(self.n_channels_u))):

                axes[channel_u].set_title(names_u[channel_u] + " Weights")
                weights = self.model.coef_[:, channel_u, :].T
                axes[channel_u].plot(weights)

            plt.xlabel("Lags")
            plt.tight_layout()
            plt.show()
            plt.close()

        if summarize:

            fig, axes = plt.subplots(2, 1, figsize=(10, 5))

            # forcing weights
            for increment, channel_u in enumerate(
                    list(range(self.n_channels_u))):
                weights = self.model.coef_[:, channel_u, :].T
                axes[0].fill_between(
                    range(weights.shape[0]),
                    np.sum(weights**2, axis=1),
                    label=names_u[channel_u],
                    alpha=0.25)
                axes[0].set_title("Forcing Weights over Lags")
            axes[0].legend()

            plt.tight_layout()
            plt.show()
            plt.close()