You might be able to install octave and gnuplot from your OS distribution. I used Ubuntu OS for this HOWTO, this also means the csv,txt,m and gnuplot files only have linefeeds and not carriage returns, use an appropriate text editor
A chromaticity diagram is a uniform two dimensional color gamut at a specific level of light. These calculations are at 100% light but any level from 0-1 can be used in the specific program as long as they are used consistently throughout the process.
XYZ tristimulus values can be found at http://cvrl.ioo.ucl.ac.uk/cmfs.htm
The CIE calculations and RGB color space primaries/calculations are from https://en.wikipedia.org/
Some basic concepts and planckian white point chromaticities from Olaf Schultz's firstname.lastname@example.org awk work http://www.enhydralutris.de/Diverses/plotCIEwithGnuplot.tgz also found down further on my main page
You can download the all files from the following github to complete the HOWTO
Open a terminal, at the command prompt type octave and following these instructions
Open another terminal, at the command prompt type the commands
octave>XYZ = xy_to_XYZ_points(1);
octave>RGBlinear = XYZ_to_RGBlinear_points(XYZ);
octave>RGB = RGBlinear_to_RGB_points(RGBlinear);
octave>RGBintegers = RGB_to_RGBintegers_points(RGB);
octave>RGBhex = RGBintegers_to_RGBhex_points(RGBintegers);
The primary corners and neutral axes don't seem visually pure and aren't in gimp image editor, I'll do the reverse calculation from RGB to xy after this forward calculation plot
The primary corners and neutral axes didn't seem visually pure and weren't in gimp image editor, here is the reverse calculations and plot, they look like they are supposed to, I don't know why the forward calculations don't, maybe I didn't adjust XYZ for white point before the forward calculations, you'll have to switch to the reverse_xy directory.