def make_roi_plots(self, gta, mcube_tot, **kwargs):
        """Make various diagnostic plots for the 1D and 2D
        counts/model distributions.

        Parameters
        ----------

        prefix : str
            Prefix that will be appended to all filenames.

        """

        fmt = kwargs.get('format', self.config['format'])
        figsize = kwargs.get('figsize', self.config['figsize'])
        prefix = kwargs.get('prefix', '')
        loge_bounds = kwargs.get('loge_bounds', None)
        weighted = kwargs.get('weighted', False)

        roi_kwargs = {}
        roi_kwargs.setdefault('loge_bounds', loge_bounds)
        roi_kwargs.setdefault(
            'graticule_radii', self.config['graticule_radii'])
        roi_kwargs.setdefault('label_ts_threshold',
                              self.config['label_ts_threshold'])
        roi_kwargs.setdefault('cmap', self.config['cmap'])
        roi_kwargs.setdefault('catalogs', self._catalogs)

        if loge_bounds is None:
            loge_bounds = (gta.log_energies[0], gta.log_energies[-1])
        esuffix = '_%.3f_%.3f' % (loge_bounds[0], loge_bounds[1])

        mcube_diffuse = gta.model_counts_map('diffuse')
        counts_map = gta.counts_map()

        if weighted:
            wmap = gta.weight_map()
            counts_map = copy.deepcopy(counts_map)
            mcube_tot = copy.deepcopy(mcube_tot)
            counts_map.data *= wmap.data
            mcube_tot.data *= wmap.data
            mcube_diffuse.data *= wmap.data

        # colors = ['k', 'b', 'g', 'r']
        data_style = {'marker': 's', 'linestyle': 'None'}

        fig = plt.figure(figsize=figsize)

        if gta.projtype == "WCS":
            xmin = -1
            xmax = 1
        elif gta.projtype == "HPX":
            hpx2wcs = counts_map.make_wcs_mapping(proj='CAR', oversample=2)
            counts_map = counts_map.to_wcs(hpx2wcs=hpx2wcs)
            mcube_tot = mcube_tot.to_wcs(hpx2wcs=hpx2wcs)
            mcube_diffuse = mcube_diffuse.to_wcs(hpx2wcs=hpx2wcs)
            xmin = None
            xmax = None

        fig = plt.figure(figsize=figsize)
        rp = ROIPlotter(mcube_tot, roi=gta.roi, **roi_kwargs)
        rp.plot(cb_label='Counts', zscale='pow', gamma=1. / 3.)
        plt.savefig(os.path.join(gta.config['fileio']['workdir'],
                                 '%s_model_map%s.%s' % (
                                     prefix, esuffix, fmt)))
        plt.close(fig)

        rp = ROIPlotter(counts_map, roi=gta.roi, **roi_kwargs)

        rp.plot(cb_label='Counts', zscale='sqrt')
        plt.savefig(os.path.join(gta.config['fileio']['workdir'],
                                 '%s_counts_map%s.%s' % (
                                     prefix, esuffix, fmt)))
        plt.close(fig)

        for iaxis, xlabel, psuffix in zip([0, 1],
                                          ['LON Offset [deg]', 'LAT Offset [deg]'],
                                          ['xproj', 'yproj']):

            fig = plt.figure(figsize=figsize)
            rp.plot_projection(iaxis, label='Data', color='k',
                               xmin=xmin, xmax=xmax, **data_style)
            rp.plot_projection(iaxis, data=mcube_tot, label='Model', xmin=xmin, xmax=xmax,
                               noerror=True)
            rp.plot_projection(iaxis, data=mcube_diffuse, label='Diffuse', xmin=xmin, xmax=xmax,
                               noerror=True)
            plt.gca().set_ylabel('Counts')
            plt.gca().set_xlabel(xlabel)
            plt.gca().legend(frameon=False)
            annotate(loge_bounds=loge_bounds)
            plt.savefig(os.path.join(gta.config['fileio']['workdir'],
                                     '%s_counts_map_%s%s.%s' % (prefix, psuffix,
                                                                esuffix, fmt)))
            plt.close(fig)