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.

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