Render the plot using a template.

        Once the plot is complete, it needs to be rendered.  Artist uses
        the Jinja2 templating engine.  The default template results in a
        LaTeX file which can be included in your document.

        :param template: a user-supplied template or None.
        :type template: string or None.
        :returns: the rendered template as string.

def render(self, template=None):
        """Render the plot using a template.

        Once the plot is complete, it needs to be rendered.  Artist uses
        the Jinja2 templating engine.  The default template results in a
        LaTeX file which can be included in your document.

        :param template: a user-supplied template or None.
        :type template: string or None.
        :returns: the rendered template as string.

        """
        if not template:
            template = self.template

        self._prepare_data()

        response = template.render(
            axis_background=self.axis_background,
            xmode=self.xmode,
            ymode=self.ymode,
            title=self.title,
            width=self.width,
            height=self.height,
            xlabel=self.xlabel,
            ylabel=self.ylabel,
            limits=self.limits,
            xscale=self.xscale,
            yscale=self.yscale,
            ticks=self.ticks,
            axis_equal=self.axis_equal,
            scalebar=self.scalebar,
            colorbar=self.colorbar,
            colormap=self.colormap,
            external_filename=self.external_filename,
            font_options=self.font_options,
            axis_options=self.axis_options,
            has_graph_paper=self.has_graph_paper,
            plot=self,
            plot_template=self.template)
        return response