Get an Seaborn chart object

def _get_seaborn_chart(self, xfield, yfield, chart_type, label,
                           _opts=None, _style=None, **kwargs):
        """
        Get an Seaborn chart object
        """
        plt.figure()
        try:
            opts, style = self._get_opts_seaborn(_opts, _style)
        except Exception as e:
            self.err(e, "Can not get chart options")
            return
        # params
        # opts["xfield"] = xfield
        # opts["yfield"] = yfield
        # opts["dataobj"] = self.df
        opts["chart_type"] = chart_type
        self.x = xfield
        self.y = yfield
        # generate
        try:
            if chart_type == "dlinear":
                chart_obj = self._dlinear_seaborn_(label, style, opts)
            elif chart_type == "linear":
                chart_obj = self._linear_seaborn_(label, style, opts)
            elif chart_type == "distribution":
                chart_obj = self._distrib_seaborn_(label, style, opts)
            elif chart_type == "density":
                chart_obj = self._density_seaborn_(label, style, opts)
            elif chart_type == "residual":
                chart_obj = self.residual_(label, style, opts)
            elif chart_type == "bar":
                chart_obj = self.seaborn_bar_(label, style, opts)
            else:
                self.err(self._get_seaborn_chart, "Chart type " + 
                         chart_type + " not supported with Seaborn")
                return
        except Exception as e:
            self.err(e, self._get_seaborn_chart,
                     "Can not get Seaborn chart object")
            return
        return chart_obj