PCA Axis Visualizer
2D and 3D principal component analysis with PC arrows, variance scree chart, and orthogonal projections onto principal axes.
About this tool
Explore the main directions of a point cloud in 2D or 3D. Generate a reproducible demo using point count and seed, or load your own two/three-column CSV. CSV switches to the matching dimension. In 3D, Render creates the view; dragging rotates and Ctrl/Meta+wheel zooms. Plain wheel scrolls the page. View toggles retain the camera.
PCA subtracts the per-coordinate mean and diagonalizes the sample covariance with denominator n−1. PC1 has the greatest variance; PC2/PC3 are perpendicular directions. A displayed axis spans ±2 standard deviations. Equal axis scales preserve angles in 2D; the 3D scene is uniformly normalized for display. The table reports eigenvalues, variance fractions and cumulative fractions. No feature scaling or whitening: differing units and outliers can dominate the result.
Green points are projections onto PC1 in 2D or the PC1–PC2 plane in 3D. Drop lines show discarded displacement. The eigenvalue table and scree plot describe the same variance. Axes and center gives the mean and eigenvector coordinates. Scores CSV exports original coordinates followed by centered dot products with every PC. Axes CSV exports means, eigenvalues, fractions and directions at full numerical precision; visible numbers are rounded.
Example: (0,0), (0,1), (0,2) has mean (0,1), sample variance 1 on the vertical PC1 and 0 on PC2. Identical points have no variance: percentages and directions are not uniquely meaningful. Equal eigenvalues also make axis orientation nonunique; either eigenvector sign is equivalent. The covariance eigensolver is less stable than SVD for severely ill-conditioned data.
Demo: 10–80 points, seed 0–4294967295. CSV: 2–2000 data rows, exactly 2 or 3 columns, 1 MiB maximum, coordinates in ±10⁹ and nonzero magnitudes ≥10⁻¹⁰⁰. Comma, semicolon or tab delimiters; decimal commas work with semicolons/tabs. Auto headers require every first-row cell to be nonnumeric; override explicitly when needed. Blank records are ignored; partial/invalid rows are rejected without truncation. The previous dataset remains on import error. No high-dimensional PCA, missing-value imputation or fitted-model reuse; calculations stay in the browser.
Only input values are remembered in this browser. Calculated results and experiment histories are not saved.