def plot_tree3d(ax, tree,<EOL>diameter_scale=_DIAMETER_SCALE, linewidth=_LINEWIDTH,<EOL>color=None, alpha=_ALPHA):
segs = [(s[<NUM_LIT:0>][COLS.XYZ], s[<NUM_LIT:1>][COLS.XYZ]) for s in iter_segments(tree)]<EOL>linewidth = _get_linewidth(tree, diameter_scale=diameter_scale, linewidth=linewidth)<EOL>color = _get_color(color, tree.type)<EOL>collection = Line3DCollection(segs, color=color, linewidth=linewidth, alpha=alpha)<EOL>ax.add_collection3d(collection)<EOL>_update_3d_datalim(ax, tree)<EOL>
Generates a figure of the tree in 3d.

    If the tree contains one single point the plot will be empty \
    since no segments can be constructed.

    Args:
        ax(matplotlib axes): on what to plot
        tree(neurom.core.Tree or neurom.core.Neurite): plotted tree
        diameter_scale(float): Scale factor multiplied with segment diameters before plotting
        linewidth(float): all segments are plotted with this width, but only if diameter_scale=None
        color(str or None): Color of plotted values, None corresponds to default choice
        alpha(float): Transparency of plotted values