Get a full chart object

def _get_chart(self, chart_type, x=None, y=None, style=None, opts=None,
				   label=None, options={}, **kwargs):
		"""
		Get a full chart object
		"""
		sbcharts = ["density", "distribution", "dlinear"]
		acharts = ["tick", "circle", "text", "line_num", "bar_num"]
		if chart_type in sbcharts:
			self._set_seaborn_engine()
		if chart_type in acharts:
			self._set_altair_engine()
		if chart_type != "sline":
			x, y = self._check_fields(x, y)
		if opts is None:
			opts = self.chart_opts
		if style is None:
			style = self.chart_style
		if self.engine == "bokeh":
			func = self._get_bokeh_chart
		elif self.engine == "altair":
			func = self._get_altair_chart
		elif self.engine == "chartjs":
			func = self._get_chartjs_chart
		elif self.engine == "seaborn":
			func = self._get_seaborn_chart
		else:
			self.err("Engine " + self.engine + " unknown")
			return
		try:
			chart = func(
				x, y, chart_type, label, opts, style,
				options=options, **kwargs)
			return chart
		except Exception as e:
			self.err(e)