def create(self):
canvas = Chart.create(self)<EOL>for index, series in enumerate(self.all_series(), start=<NUM_LIT:1>):<EOL><INDENT>series.write_to_canvas(canvas, "<STR_LIT>" % index)<EOL><DEDENT>canvas.add_rectangle(<EOL><NUM_LIT:0>, <NUM_LIT:0>, self.horizontal_padding() * canvas.width(), canvas.height(),<EOL>opacity=<NUM_LIT:1>,<EOL>line_width=<NUM_LIT:0>,<EOL>name="<STR_LIT>"<EOL>)<EOL>canvas.add_rectangle(<EOL><NUM_LIT:0>, <NUM_LIT:0>, canvas.width(), self.vertical_padding() * canvas.height(),<EOL>opacity=<NUM_LIT:1>,<EOL>line_width=<NUM_LIT:0>,<EOL>name="<STR_LIT>"<EOL>)<EOL>canvas.add_rectangle(<EOL>canvas.width() - (self.horizontal_padding() * canvas.width()), <NUM_LIT:0>,<EOL>self.horizontal_padding() * canvas.width(), canvas.height(),<EOL>opacity=<NUM_LIT:1>,<EOL>line_width=<NUM_LIT:0>,<EOL>name="<STR_LIT>"<EOL>)<EOL>canvas.add_rectangle(<EOL><NUM_LIT:0>, canvas.height() - (self.vertical_padding() * canvas.height()),<EOL>canvas.width(), self.vertical_padding() * canvas.height(),<EOL>opacity=<NUM_LIT:1>,<EOL>line_width=<NUM_LIT:0>,<EOL>name="<STR_LIT>"<EOL>)<EOL>title = canvas.graphics()[<NUM_LIT:0>]<EOL>while canvas.graphics().index(title) != len(canvas.graphics()) - <NUM_LIT:1>:<EOL><INDENT>canvas.move_graphic_forward(title)<EOL><DEDENT>canvas.graphics()[-<NUM_LIT:1>].y(self.vertical_padding() * canvas.height() * <NUM_LIT:0.5>)<EOL>canvas.graphics()[-<NUM_LIT:1>].vertical_align("<STR_LIT>")<EOL>axes = canvas.add_rectangle(<EOL>self.horizontal_padding() * canvas.width(),<EOL>self.vertical_padding() * canvas.height(),<EOL>canvas.width() - (<NUM_LIT:2> * self.horizontal_padding() * canvas.width()),<EOL>canvas.height() - (<NUM_LIT:2> * self.vertical_padding() * canvas.height()),<EOL>name="<STR_LIT>",<EOL>opacity=<NUM_LIT:0><EOL>)<EOL>if self.x_label():<EOL><INDENT>canvas.add_text(<EOL>canvas.width() / <NUM_LIT:2>,<EOL>canvas.height() - (self.vertical_padding() * canvas.height() * <NUM_LIT>),<EOL>self.x_label(),<EOL>name="<STR_LIT>"<EOL>)<EOL><DEDENT>y_label_x = self.horizontal_padding() * canvas.width() * <NUM_LIT><EOL>if self.y_label():<EOL><INDENT>canvas.add_text(<EOL>y_label_x,<EOL>canvas.height() * <NUM_LIT:0.5>,<EOL>self.y_label(),<EOL>rotation=(y_label_x, canvas.height() * <NUM_LIT:0.5>, <NUM_LIT>),<EOL>name="<STR_LIT>"<EOL>)<EOL><DEDENT>x_tick_series = Series(*[(tick, <NUM_LIT:0>) for tick in self.x_ticks()])<EOL>x_tick_series._chart = self<EOL>x_tick_points = x_tick_series.canvas_points()<EOL>for index, tick in enumerate(x_tick_series.data()):<EOL><INDENT>canvas.add_text(<EOL>x_tick_points[index][<NUM_LIT:0>],<EOL>canvas.height() - (self.vertical_padding() * canvas.height() * <NUM_LIT>),<EOL>str(tick[<NUM_LIT:0>]),<EOL>name="<STR_LIT>"<EOL>)<EOL>if self.x_grid():<EOL><INDENT>line = canvas.add_line(<EOL>x_tick_points[index][<NUM_LIT:0>], canvas.height() * (<NUM_LIT:1> - self.vertical_padding()),<EOL>x_tick_points[index][<NUM_LIT:0>], canvas.height() * self.vertical_padding(),<EOL>line_style="<STR_LIT:..>",<EOL>line_color="<STR_LIT>",<EOL>name="<STR_LIT>"<EOL>)<EOL>while canvas.graphics()[<NUM_LIT:0>] is not line:<EOL><INDENT>canvas.move_graphic_backward(line)<EOL><DEDENT><DEDENT><DEDENT>y_tick_series = Series(*[(<NUM_LIT:0>, tick) for tick in self.y_ticks()])<EOL>y_tick_series._chart = self<EOL>y_tick_points = y_tick_series.canvas_points()<EOL>for index, tick in enumerate(y_tick_series.data()):<EOL><INDENT>canvas.add_text(<EOL>self.horizontal_padding() * canvas.width() * <NUM_LIT>,<EOL>y_tick_points[index][<NUM_LIT:1>],<EOL>str(tick[<NUM_LIT:1>]),<EOL>name="<STR_LIT>"<EOL>)<EOL>if self.y_grid():<EOL><INDENT>line = canvas.add_line(<EOL>canvas.width() * self.horizontal_padding(), y_tick_points[index][<NUM_LIT:1>],<EOL>canvas.width() * (<NUM_LIT:1> - self.horizontal_padding()), y_tick_points[index][<NUM_LIT:1>],<EOL>line_style="<STR_LIT:..>",<EOL>line_color="<STR_LIT>",<EOL>name="<STR_LIT>"<EOL>)<EOL>while canvas.graphics()[<NUM_LIT:0>] is not line:<EOL><INDENT>canvas.move_graphic_backward(line)<EOL><DEDENT><DEDENT><DEDENT>return canvas<EOL>
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.