docs: 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