def draw(<EOL>self,<EOL>tree_style=None,<EOL>height=None,<EOL>width=None,<EOL>axes=None,        <EOL>orient=None,<EOL>tip_labels=None,<EOL>tip_labels_colors=None,<EOL>tip_labels_style=None,<EOL>tip_labels_align=None,<EOL>node_labels=None,<EOL>node_labels_style=None,<EOL>node_sizes=None,<EOL>node_colors=None,<EOL>node_style=None,<EOL>node_hover=None,<EOL>node_markers=None,<EOL>edge_colors=None,<EOL>edge_widths=None,<EOL>edge_type=None,<EOL>edge_style=None,<EOL>edge_align_style=None,<EOL>use_edge_lengths=None,<EOL>scalebar=None,<EOL>padding=None,<EOL>xbaseline=<NUM_LIT:0>,<EOL>ybaseline=<NUM_LIT:0>,<EOL>**kwargs):
<EOL>if kwargs.get("<STR_LIT>"):<EOL><INDENT>tree_style = kwargs.get("<STR_LIT>")<EOL><DEDENT>nself = deepcopy(self)<EOL>if tree_style:<EOL><INDENT>nself.style.update(TreeStyle(tree_style[<NUM_LIT:0>]))<EOL><DEDENT>userargs = {<EOL>"<STR_LIT>": height,<EOL>"<STR_LIT:width>": width,<EOL>"<STR_LIT>": orient,<EOL>"<STR_LIT>": tip_labels,<EOL>"<STR_LIT>": tip_labels_colors,<EOL>"<STR_LIT>": tip_labels_align,<EOL>"<STR_LIT>": tip_labels_style,<EOL>"<STR_LIT>": node_labels,<EOL>"<STR_LIT>": node_labels_style,<EOL>"<STR_LIT>": node_sizes,<EOL>"<STR_LIT>": node_colors,<EOL>"<STR_LIT>": node_hover,<EOL>"<STR_LIT>": node_style,<EOL>"<STR_LIT>": node_markers,<EOL>"<STR_LIT>": edge_type,<EOL>"<STR_LIT>": edge_colors,<EOL>"<STR_LIT>": edge_widths,<EOL>"<STR_LIT>": edge_style,<EOL>"<STR_LIT>": edge_align_style,<EOL>"<STR_LIT>": use_edge_lengths,<EOL>"<STR_LIT>": scalebar,<EOL>"<STR_LIT>": padding,<EOL>"<STR_LIT>": xbaseline, <EOL>"<STR_LIT>": ybaseline,<EOL>}<EOL>kwargs.update(userargs)<EOL>censored = {i: j for (i, j) in kwargs.items() if j is not None}<EOL>nself.style.update(censored)<EOL>unrecognized = [i for i in kwargs if i not in userargs]<EOL>if unrecognized:<EOL><INDENT>print("<STR_LIT>".format(unrecognized))<EOL>print("<STR_LIT>")<EOL><DEDENT>draw = Drawing(nself)<EOL>if kwargs.get("<STR_LIT>"):<EOL><INDENT>return draw<EOL><DEDENT>canvas, axes = draw.update(axes=axes)<EOL>return canvas, axes<EOL>
Plot a Toytree tree, returns a tuple of Toyplot (Canvas, Axes) objects.

Parameters:
-----------
tree_style: str
    One of several preset styles for tree plotting. The default is 'n'
    (normal). Other options inlude 'c' (coalescent), 'd' (dark), and
    'm' (multitree). You also create your own TreeStyle objects.
    The tree_style sets a default set of styling on top of which other
    arguments passed to draw() will override when plotting.

height: int (optional; default=None)
    If None the plot height is autosized. If 'axes' arg is used then 
    tree is drawn on an existing Canvas, Axes and this arg is ignored.

width: int (optional; default=None)
    Similar to height (above). 

axes: Toyplot.Cartesian (default=None)
    A toyplot cartesian axes object. If provided tree is drawn on it.
    If not provided then a new Canvas and Cartesian axes are created
    and returned with the tree plot added to it.

use_edge_lengths: bool (default=False)
    Use edge lengths from .treenode (.get_edge_lengths) else
    edges are set to length >=1 to make tree ultrametric.

tip_labels: [True, False, list]
    If True then the tip labels from .treenode are added to the plot.
    If False no tip labels are added. If a list of tip labels
    is provided it must be the same length as .get_tip_labels().

tip_labels_colors:
    ...

tip_labels_style:
    ...

tip_labels_align:
    ...

node_labels: [True, False, list]
    If True then nodes are shown, if False then nodes are suppressed
    If a list of node labels is provided it must be the same length
    and order as nodes in .get_node_values(). Node labels can be 
    generated in the proper order using the the .get_node_labels() 
    function from a Toytree tree to draw info from the tree features.
    For example: node_labels=tree.get_node_labels("support").

node_sizes: [int, list, None]
    If None then nodes are not shown, otherwise, if node_labels
    then node_size can be modified. If a list of node sizes is
    provided it must be the same length and order as nodes in
    .get_node_dict().

node_colors: [list]
    Use this argument only if you wish to set different colors for
    different nodes, in which case you must enter a list of colors
    as string names or HEX values the length and order of nodes in
    .get_node_dict(). If all nodes will be the same color then use
    instead the node_style dictionary:
    e.g., node_style={"fill": 'red'}

node_style: [dict]

...

node_hover: [True, False, list, dict]
    Default is True in which case node hover will show the node
    values. If False then no hover is shown. If a list or dict
    is provided (which should be in node order) then the values
    will be shown in order. If a dict then labels can be provided
    as well.