Repository: https://github.com/TTrautner/LineWeaver DOI: https://doi.org/10.1111/cgf.14316
Line charts are an effective and widely used technique for visualizing series of ordered two-dimensional data points. The relationship between consecutive points is thereby indicated by connecting line segments, revealing potential trends or clusters in the underlying data. However, when dealing with an increasing number of lines, the render order has a major influence on the resulting visualization. Rendering transparent lines can help but unfortunately the blending order is currently either ignored or naively used, for example, assuming it is implicitly given by the order in which the data was saved in a file. Because of the non-commutativity of classical alpha blending, this produces contradicting visualizations of the same underlying data set, so-called "hallucinators". In this paper, we therefore present line weaver, a novel visualization technique for dense line charts. Using an importance function, we developed a technique that correctly considers the blending order independent of the render order and without any prior sorting of the data. We allow for importance functions which are either explicitly given or implicitly derived from the geometric properties of the data, if no external data is available. The importance can then be applied globally to entire lines, or locally per pixel which simultaneously supports various types of user interaction. Finally, we discuss the potential of our contribution based on different synthetic and real-world data sets where classic or naive approaches would fail.
The project uses CMake and relies on the following libraries:
The project uses vcpkg (https://vcpkg.io) for dependency management, so this should take care of everything. Please follow the instructions on the vcpkg website (https://vcpkg.io/en/getting-started.html) to set it up for your environment. When using visual studio, make sure to install the vcpkg integration using
vcpkg integrate install
There is a manifest file called vcpkg.json
in the project root folder. When building with CMake for the first time, all dependencies should be downloaded and installed automatically.
If you are using Visual Studio, you can use its integrated CMake support to build and run the project.
When instead building from the command line, run the following commands from the project root folder:
mkdir build
cd build
cmake ..
After this, you can compile the debug or release versions of the project using
cmake --build --config Debug
and/or
cmake --build --config Release
After building, the executables will be available in the ./bin
folder.
To correctly locate shaders and other resources (which are stored in the ./res
folder), the program requires the current working directory to be the project root folder. A launch configuration file for Visual Studio (./.vs/launch.vs.json
) that takes care of this is included, just select lineweaver
as a startup item in the toolbar. When running from the command line, make sure that you are in the project root folder and execute
./bin/lineweaver
After starting the program, choose either Trajectory
or Series
as "File Mode". In case of Trajectory
, click on the first "Browse" button to select a data file located in the ./dat
folder. If desired, select the corresponding importance file using the "Browse" button below for importances. These are located in the ./dat/importance
folder and have the same name as the trajectory data set, including the suffix -importance
. In case of Series
as "File Mode", use the first "Browse" button to select a data file located in the ./data/series
folder instead. These, however, do not require additional importance files as importance is derived implicitly.
Copyright (c) 2021, Thomas Trautner. Released under the GPLv3 License. Please visite https://vis.uib.no/team/thomas-trautner/ for contact information.