Create plots of the forward models

        Returns
        -------
        mag_fig: dict
            Dictionary containing the figure and axes objects of the magnitude
            plots

def plot_forward_models(self, maglim=None, phalim=None, **kwargs):
        """Create plots of the forward models

        Returns
        -------
        mag_fig: dict
            Dictionary containing the figure and axes objects of the magnitude
            plots

        """
        return_dict = {}

        N = len(self.frequencies)
        nrx = min(N, 4)
        nrz = int(np.ceil(N / nrx))

        for index, key, limits in zip(
                (0, 1), ('rmag', 'rpha'), (maglim, phalim)):
            if limits is None:
                cbmin = None
                cbmax = None
            else:
                cbmin = limits[0]
                cbmax = limits[1]

            fig, axes = plt.subplots(
                nrz, nrx,
                figsize=(16 / 2.54, nrz * 3 / 2.54),
                sharex=True, sharey=True,
            )
            for ax in axes.flat:
                ax.set_visible(False)

            for ax, frequency in zip(axes.flat, self.frequencies):
                ax.set_visible(True)
                td = self.tds[frequency]
                pids = td.a['forward_model']
                td.plot.plot_elements_to_ax(
                    pids[index],
                    ax=ax,
                    plot_colorbar=True,
                    cbposition='horizontal',
                    cbmin=cbmin,
                    cbmax=cbmax,
                    **kwargs
                )
            for ax in axes[0:-1, :].flat:
                ax.set_xlabel('')

            for ax in axes[:, 1:].flat:
                ax.set_ylabel('')

            fig.tight_layout()
            return_dict[key] = {
                'fig': fig,
                'axes': axes,
            }

        return return_dict