uvisbox.Modules.CurveBoxplot.curve_boxplot_mesh =============================================== .. py:module:: uvisbox.Modules.CurveBoxplot.curve_boxplot_mesh Module Contents --------------- .. py:function:: curve_boxplot_mesh(summary_stats) Build triangular mesh for curve band depth visualization. This function generates triangular meshes for each percentile band using the sorted curves from the summary statistics. For 2D curves, it uses ConvexHull and Delaunay triangulation with a center point. For 3D curves, it uses the ConvexHull faces directly. :param summary_stats: Output from ``curve_boxplot_summary_statistics`` containing sorted curves, percentile values, and dimensionality. :type summary_stats: dict :returns: **mesh_data** -- Contains ``percentile_meshes``, ``median_curve``, ``outliers``, and ``n_dims``. Each percentile mesh is a ``(points, triangles)`` tuple; points have shape ``(n_points, n_dims)`` and triangles have shape ``(n_triangles, 3)``. :rtype: dict .. rubric:: Examples >>> import numpy as np >>> from uvisbox.Modules.CurveBoxplot.curve_boxplot_stats import curve_boxplot_summary_statistics >>> from uvisbox.Modules.CurveBoxplot.curve_boxplot_mesh import curve_boxplot_mesh >>> >>> # Generate synthetic curve data >>> curves = np.random.randn(50, 100, 2).cumsum(axis=1) >>> >>> # Compute statistics >>> stats = curve_boxplot_summary_statistics(curves) >>> >>> # Build mesh >>> mesh_data = curve_boxplot_mesh(stats) >>> >>> # Access mesh for 50th percentile >>> points, triangles = mesh_data['percentile_meshes']['50_percentile_mesh'] >>> print(f"Mesh has {points.shape[0]} points and {triangles.shape[0]} triangles")