3-D Point cloud for plotting things like mesh models of horses ;)

def point_cloud(df, columns=[0, 1, 2]):
    """3-D Point cloud for plotting things like mesh models of horses ;)"""
    df = df if isinstance(df, pd.DataFrame) else pd.DataFrame(df)
    if not all(c in df.columns for c in columns):
        columns = list(df.columns)[:3]

    fig = plt.figure()
    ax = fig.add_subplot(111, projection='3d')  # noqa
    Axes3D.scatter(*[df[columns[i]] for i in range(3)], zdir='z', s=20, c=None, depthshade=True)
    return ax