Flatland is a quick and easy utility to plot n-dimensional numerical data from the command line. It was inspired by QuickPlot, a wonderful utility that allows you to quickly and easily plot regular 2d plots and graphs from files or by just piping data into it. Flatland has fewer features, but it can deal with data of arbitrary dimensionality.
Flatland also runs natively on MacOSX, Linux, or Windows, while QuickPlot is written using GTK and really only works well on Linux and similar systems.
The n-dimensional plotting algorithm used by Flatland is simple. First, N unit vectors in 2d cartesian space are generated by dividing PI by N and using the forumae for radial coordinate conversion. Then, each dimension in each data point is multiplied by its corresponding 2d unit vector and these are added together. There are many ways to plot n-dimensional data, but this method is simple and easy to understand.
Flatland is released under the terms of the GNU General Public License version 3. If you modify it, fix it, or enhance it, send me your changes and you'll get mentioned in a credits file if I decide to include them. Visit my main site for contact info and more stuff about me.
Flatland requires OpenGL and GLUT to build, and is easily compiled on Linux, *BSD, MacOSX, and Windows with MinGW and the appropriate libraries. OpenGL was used because it's portable, deals well with huge numbers of points, takes care of scaling and such automatically, and opens up the possibility of adding support for other n-dimensional visualization techniques in the future.
After you download and get it running, run "flatland -h" for help. If you run it without arguments, it will expect CSV numerical data on its standard input.
A plain old two dimensional sine wave. | |
Some trigonometric functions in 16 dimensions, in reversed video. | |
An 18-dimensional fitness landscape sampling from a genetic algorithm. Some candidates have fewer dimensions and some have more, thus the "banding" observed. The arguments "-p 1 -v 4" were used to produce this. |
This is the first release of Flatland. Read BUILDING.txt inside the archive for build instructions for each supported platform.
flatland-0.5.tar.gz - .tar.gz for Macintosh, Linux, and BSD users
flatland-0.5.zip - .zip for Windows users (32-bit Windows binary included)