def draw_cloud_tree(self, <EOL>axes=None, <EOL>html=False,<EOL>fixed_order=True,<EOL>**kwargs):
<EOL>if not self.treelist:<EOL><INDENT>print("<STR_LIT>")<EOL>return None, None<EOL><DEDENT>if not self.all_tips_shared:<EOL><INDENT>print("<STR_LIT>")<EOL>return None, None            <EOL><DEDENT>if not fixed_order:<EOL><INDENT>raise Exception(<EOL>"<STR_LIT>")<EOL><DEDENT>if isinstance(fixed_order, (list, tuple)):<EOL><INDENT>pass<EOL><DEDENT>elif fixed_order is True:<EOL><INDENT>fixed_order = self.treelist[<NUM_LIT:0>].get_tip_labels()<EOL><DEDENT>else:<EOL><INDENT>raise Exception(<EOL>"<STR_LIT>")<EOL><DEDENT>treelist = [<EOL>ToyTree(i, fixed_order=fixed_order) for i in self.copy().treelist<EOL>]  <EOL>if kwargs.get("<STR_LIT>"):<EOL><INDENT>print(TIP_LABELS_ADVICE)<EOL><DEDENT>try:<EOL><INDENT>changed_autoformat = False<EOL>if not html:<EOL><INDENT>toyplot.config.autoformat = "<STR_LIT>"<EOL>changed_autoformat = True<EOL><DEDENT>mstyle = STYLES['<STR_LIT:m>']<EOL>mstyle.update(<EOL>{i: j for (i, j) in kwargs.items() if <EOL>(j is not None) & (i != "<STR_LIT>")}<EOL>)<EOL>for tree in treelist:<EOL><INDENT>tree.style.update(mstyle)<EOL><DEDENT>draw = CloudTree(treelist, **kwargs)<EOL>if kwargs.get("<STR_LIT>"):<EOL><INDENT>return draw<EOL><DEDENT>canvas, axes = draw.update(axes)<EOL>return canvas, axes<EOL><DEDENT>finally:<EOL><INDENT>if changed_autoformat:<EOL><INDENT>toyplot.config.autoformat = "<STR_LIT:html>"<EOL><DEDENT><DEDENT>
Draw a series of trees overlapping each other in coordinate space.
The order of tip_labels is fixed in cloud trees so that trees with 
discordant relationships can be seen in conflict. To change the tip
order use the 'fixed_order' argument in toytree.mtree() when creating
the MultiTree object.

Parameters:
    axes (toyplot.Cartesian): toyplot Cartesian axes object.
    html (bool): whether to return the drawing as html (default=PNG).
    edge_styles: (list): option to enter a list of edge dictionaries.
    **kwargs (dict): styling options should be input as a dictionary.