Calculations and visualizations closely follow the discussion presented here.
For best results, data should be normalized into a vector space with each dimension ∈ [ 0, 1 ] or [ -1, 1 ].
Data outside of this range will not be displayed in the visualizations.
The first row of the CSV is assumed to be header data.