Skip to contents

Visualization responsibility

PreciseViz is the visualization and browsing package. Its job is to help users see typed relatedness outputs without changing what those outputs mean.

The package boundary should include functions that render, browse, or export already-created relatedness objects:

The visualization layer should accept the outputs of earlier tiers and render what is already there. It should not silently compute new distances, transform types, fuse matrices, or infer meaning from values.

Boundary rule

PreciseViz can be heavier than PreciseDist. That is acceptable. Visualization naturally pulls in graphics, layout, browsing, and export dependencies. The default static visualization engine is ggplot2. Plotly is an optional interactive renderer selected inside each view’s params, not a separate data path. Some views compute coordinates first — for example, embeddings use UMAP by default, can use explicit 2-D/3-D t-SNE through Rtsne, and graph views use igraph layouts — but the rendered panel remains a plot object over declared visualization data.

The important constraint is conceptual, not weight alone: PreciseViz should remain a consumer of typed relatedness objects. It should show structure, agreement, uncertainty, and failure modes without hiding the matrices that created them.

The same rule applies to styling. Embeddings should not show Cartesian grids, because the axes are coordinates for visual separation rather than measured variables. Heatmaps should use a consistent sequential palette for relatedness intensity. Interactive views should add hover, zoom, and browsing affordances without changing the underlying matrix, graph layout, or embedding coordinates.

Website role

PreciseViz belongs on the same website as PreciseDist because the user-facing workflow is continuous. The references are separated by package ownership, but the articles stay merged so a user can move from matrix construction to visual inspection without changing documentation sites.