docs: def create(self):
          """Renders the chart to an OmniCanvas `canvas <https://omnicanvas.readt\
          hedocs.io/en/latest/api/canvas.html#omnicanvas.canvas.Canvas>`_. This
          object can then be `saved <https://omnicanvas.readthedocs.io/en/latest/\
          api/canvas.html#omnicanvas.canvas.Canvas.save>`_ or `rendered <https://\
          omnicanvas.readthedocs.io/en/latest/api/canvas.html#omnicanvas.canvas.C\
          anvas.render>`_ as SVG."""
  
          canvas = Chart.create(self)
  
          for index, series in enumerate(self.all_series(), start=1):
              series.write_to_canvas(canvas, "series%i" % index)
          canvas.add_rectangle(
           0, 0, self.horizontal_padding() * canvas.width(), canvas.height(),
           opacity=1,
           line_width=0,
           name="block-w"
          )
          canvas.add_rectangle(
           0, 0, canvas.width(), self.vertical_padding() * canvas.height(),
           opacity=1,
           line_width=0,
           name="block-n"
          )
          canvas.add_rectangle(
           canvas.width() - (self.horizontal_padding() * canvas.width()), 0,
           self.horizontal_padding() * canvas.width(), canvas.height(),
           opacity=1,
           line_width=0,
           name="block-e"
          )
          canvas.add_rectangle(
           0, canvas.height() - (self.vertical_padding() * canvas.height()),
           canvas.width(), self.vertical_padding() * canvas.height(),
           opacity=1,
           line_width=0,
           name="block-s"
          )
          title = canvas.graphics()[0]
          while canvas.graphics().index(title) != len(canvas.graphics()) - 1:
              canvas.move_graphic_forward(title)
          canvas.graphics()[-1].y(self.vertical_padding() * canvas.height() * 0.5)
          canvas.graphics()[-1].vertical_align("center")
  
          axes = canvas.add_rectangle(
           self.horizontal_padding() * canvas.width(),
           self.vertical_padding() * canvas.height(),
           canvas.width() - (2 * self.horizontal_padding() * canvas.width()),
           canvas.height() - (2 * self.vertical_padding() * canvas.height()),
           name="axes",
           opacity=0
          )
  
          if self.x_label():
              canvas.add_text(
               canvas.width() / 2,
               canvas.height() - (self.vertical_padding() * canvas.height() * 0.25),
               self.x_label(),
               name="x_label"
              )
          y_label_x = self.horizontal_padding() * canvas.width() * 0.25
          if self.y_label():
              canvas.add_text(
               y_label_x,
               canvas.height() * 0.5,
               self.y_label(),
               rotation=(y_label_x, canvas.height() * 0.5, 270),
               name="y_label"
              )
          x_tick_series = Series(*[(tick, 0) for tick in self.x_ticks()])
          x_tick_series._chart = self
          x_tick_points = x_tick_series.canvas_points()
          for index, tick in enumerate(x_tick_series.data()):
              canvas.add_text(
               x_tick_points[index][0],
               canvas.height() - (self.vertical_padding() * canvas.height() * 0.75),
               str(tick[0]),
               name="xtick"
              )
              if self.x_grid():
                  line = canvas.add_line(
                   x_tick_points[index][0], canvas.height() * (1 - self.vertical_padding()),
                   x_tick_points[index][0], canvas.height() * self.vertical_padding(),
                   line_style="..",
                   line_color="#333333",
                   name="xgrid"
                  )
                  while canvas.graphics()[0] is not line:
                      canvas.move_graphic_backward(line)
          y_tick_series = Series(*[(0, tick) for tick in self.y_ticks()])
          y_tick_series._chart = self
          y_tick_points = y_tick_series.canvas_points()
          for index, tick in enumerate(y_tick_series.data()):
              canvas.add_text(
               self.horizontal_padding() * canvas.width() * 0.75,
               y_tick_points[index][1],
               str(tick[1]),
               name="ytick"
              )
              if self.y_grid():
                  line = canvas.add_line(
                   canvas.width() * self.horizontal_padding(), y_tick_points[index][1],
                   canvas.width() * (1 - self.horizontal_padding()), y_tick_points[index][1],
                   line_style="..",
                   line_color="#333333",
                   name="ygrid"
                  )
                  while canvas.graphics()[0] is not line:
                      canvas.move_graphic_backward(line)
          return canvas