Introduction
Large-scale high dimensional data visualization is highly valuable for scientific discovery in many fields of data mining and information retrieval. PlotViz is a 3D data point browser that visualizes large volume of 2- or 3-dimensional data as points in a virtual space on a computer screen and enable users to explore the virtual space interactively. PlotViz was initially designed to consume outputs of dimension reduction algorithms for visualizing high-dimensional data in a lower-dimensional space, such as Multi-dimensional Scaling (MDS) and Generative Topographic Mapping (GTM). Used together with such dimension reduction algorithms, PlotViz can help users to discover intrinsic structures of high-dimensional data and browse large volumes of data points interactively and efficiently in a virtual 3D space.
Key Features and Functions
PlotViz3 has the following main features:
- 3D data point visualization in a virtual space.
- Overlaying meta data information, such as cluster information, name, or images, over data points to provide rich information to users.
- User-friendly interactive GUI, including zooming and rotating.
- A light-weight cross platform client running on Windows, Mac, and Linux.
Download and installation
PlotViz3 is a cross-platform tool and we distribute 64-bit binaries for Windows and Mac.
PlotViz3 version 0.8.7 (2011/12/05):
- Windows (x64): PVIZ3-0.8.7-win64.exe
- Mac (x64): PVIZ3-0.8.7-Darwin.dmg
- Major updates :
- Add cube axes. Resizable on selection
- Save as an AVI file (Windows only)
PlotViz3 version 0.7.1 (2011/09/13):
- Windows (x64): PVIZ3-0.7.3-win64.exe
- Mac (x64): PVIZ3-0.7.3-Darwin.dmg
- Major updates :
- Add predefined color maps for categorical data
PlotViz3 version 0.7.1 (2011/09/13):
- Windows (x64): PVIZ3-0.7.1-win64.exe
- Mac (x64): PVIZ3-0.7.1-Darwin.dmg
- Major updates :
- Add a function to show title at top (Features Panel > Title)
- Remember the last folder used
- Full screen (View > Full Screen or Ctrl-F)
- Add a new section in XML format to save title, point size, glyph size, etc.
- Save as a simple text file. (To be used in R or Matlab)
PlotViz3 version 0.6.1 (2011/07/20):
- Windows (x64): PVIZ3-0.6.1-win64.exe
- Mac (x64): PVIZ3-0.6.2-Darwin.dmg
- Major updates :
- Add an option to speicify default/non-default clusters.
- Enable multi-selection and sorting in the cluster list view.
- Add a function to select neighbors.
- Minor bugs fixed.
PlotViz3 version 0.4.3 (2011/04/27):
- Windows (x64): PVIZ3-0.4.3-win64.exe
- Mac (x64): PVIZ3-0.4.3-Darwin.dmg
- Major updates :
- Changed to an MDI style to open multiple files in subwindows.
- Synchronized camera function added.
- PickCenter function added.
- Use light-weiht glyph to improve rendering performance.
PlotViz3 version 0.3 (2010/12/06):
- Windows (x64): PVIZ3-0.3.0-win64.zip
- Windows (x86): PVIZ3-0.3.0-win32.zip
- Mac (x64): PVIZ3-0.3.0-Darwin.dmg
- Major updates :
- A function for showing a half sphere added.
- Hovering function added.
- Save as PVIZ format added.
- Inclusive selection with SHIFT key added.
- Minor bug fixes for legend showing.
PlotViz3 version 0.2 (2010/11/23):
- Windows : PVIZ3-0.2.0-win64.zip
- Mac : PVIZ3-0.2.0-Darwin.dmg
- Major updates :
- Play/Pause function added.
- Legend showing added.
- Save Screen function added.
- POINTLABELS section added for simple format.
- Selection and showing labels are improvied.
PlotViz3 version 0.1 (2010/11/14):
- Windows : PVIZ3-0.1.0-win64.zip
- Mac : PVIZ3-0.1.0-Darwin.dmg
Previous PlotViz running on Windows only is available at here.
Sample data files are avaiable :
- Sample data files : PlotViz3_sample.zip
Instructions for developers
PlotViz3 is dependent on the following external components:
Building in Windows
In order to build PlotViz3 from the souce code, you should build those libraries in your system or use pre-built libraries. Speicifally for Windows, it is also required to install the following programs
- Visual Studio 2010
- CMake
- Nullsoft Scriptable Install System (NSIS)
- CollabNet Subversion Command-Line Client
- A command line ZIP client (7za)
Some of them are available from here (See tools directory inside).
In the following, we will explain how to build PlotViz3 from the source code in Windows by using the pre-built libraries provided here.
- Set following three environmental variables:
- PVIZ3DEV_HOME : directory of external libraries (This should be c:\pviz3dev if you decide to use our pre-built libraries)
- PVIZ3DEV_WORKSPACE : location of working directory to build libraries from scratch.
- PVIZ3_SRC : root directory where the pviz3 source code will be stored
- Download our pre-built libraries from here and unzip to c:\pviz3dev (This is a fixed location. In order to use different location, you need to compile QT and VTK in your machine. More instructions will follow)
- Check out the PlotViz3 source code from our svn repository. For example,
C:\> svn co https://salsadev.indiana.edu/svn/repository/pviz3/trunk %PVIZ3_SRC%
- Open a Visual Studio comamnd prompt (Start > All Programs > Microsoft Visual Studio 2010 > Visual Studio Tools > Visual Studio X64 Win64 Command Prompt)
- Creat a directory for building and run config.bat under PVIZ3_SRC directory. The following is an example:
C:\> cd %PVIZ3_SRC%This will generate a Visual Studio solution file (PVIZ3.sln). With this, you can compile and build PlotViz3. In Visual Studio, note the following:
C:\pviz3> mkdir build
C:\pviz3> cd build
C:\pviz3\build> %PVIZ3_SRC%\config.bat -g vs
- Use only "Release" configuration (Default is "Debug") if you are using our pre-built libraries.
- Build "PACKAGE" will generate a PlotViz3 installer.
- Build "INSTALL" will create a "install" directory which contains PlotViz3 binaries and related dlls.
- If you prefer command line environments, you can do with nmake as follows:
C:\pviz3\build> %PVIZ3_SRC%\config.bat
C:\pviz3\build> nmake
- To build libraries in your own system, download this and unzip to %PVIZ3DEV_WORKSPACE%. This file contains the following:
- DOS batch file for building Qt, VTK, and Boost (bin directory)
- ActiveMQ and related visual studio source code
- Related tools and source codes (tools directory)
Building in Mac
In order to build PlotViz3 in Mac, it is required to install the following programs
In the following, we will explain how to build PlotViz3 from the source code in Mac by using MacPorts (You can build required libraries any way you want. The following is only one of many ways).
We need the following environmental variables to set in PlotViz3 development in Mac.
- VTK_HOME : VTK
- BOOST_HOME : Boost C++ library
- PROTOBUF_HOME : Google Protobuf
- APR_HOME : Apache Portable Runtime
- APU_HOME : Apache Portable Runtime Uitlity
- ACTIVEMQCPP_HOME : ActiveMQ-CPP
In the following, we will explain how to install libraries and PlotViz3.
- Install a 64-bit binary distribution of Qt
- Compile VTK from the source code. Set VTK_HOME environmental variable (e.g., export VTK_HOME=/opt/pviz3dev) to be the directory where VTK is installed. Compiling VTK can use the following command:
$ cmake -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_SHARED_LIBS:BOOL=ON -DVTK_USE_QT:BOOL=ON -DVTK_USE_QVTK:BOOL=ON -DVTK_USE_QVTK_QTOPENGL:BOOL=ON -DCMAKE_INSTALL_PREFIX:PATH=$VTK_HOME /vtk_source_dir
$ make
$ sudo make install
- Install Boost C++ libraryand Google Protobuf
$ sudo port install boost
$ sudo port install protobuf-cpp - To build ActiveMQ-CPP , we need Apache Portable Runtime, Rumtime Utility, and UUID library. You can install them as follow:
$ sudo port install apr apr-utilThen, download ActiveMQ-CPP source code and build as follows:
$ sudo port install ossp-uuid$ configure --prefix=/opt/pviz3dev --enable-shared=no
$ make
$ sudo make install - Now check out PlotViz3 source code:
$ svn co https://salsadev.indiana.edu/svn/repository/pviz3/trunk /dir/to/PlotViz3/ - Run config.sh and make
$ mkdir buildTo make a package, type
$ cd build
$ ../config.sh
$ make$ make package - To use Xcode, type
$ config.sh -g Xcode
Samples
Once installed, you can use PlotViz3 immediately with our sample input files which are available for downloading from here. You can see the input files through PlotViz3. More details about the input file format are described in the next section.
Input File Format
In order to see 3D points through PlotViz3, an input file should be created. Currently PlotViz3 can read three types of input files: simple text file, extended simple text file, and xml file. Sample files are also available from here for your reference.
Simple text file
PlotViz3 can read a simple text file containing the following 6 columns separated by a space or a tab for each line:
- Column 1 : ID number. Should be unique
- Column 2-4 : 3D XYZ positions
- Column 5 : Group ID
- Column 6 (optional) : Label (Strings to be displayed as annotations) . No space is allowed.
An example is shown as follows:
## Three points with two groups
1 -0.99 0.05 -0.26 1 VT-00594413
2 -0.59 0.09 0.08 1 DAH1522401
3 0.15 0.46 -0.99 2 CID
Extended Simple text file
Extended simple text file format consists of a few sections: POINTS, SCALES, COLORS, and LINES. Details of section descriptions are as follow:
POINTS : Containing the following 6 columns separated by a space or a tab for each line:
- Column 1 : ID number. Should be unique
- Column 2-4 : 3D XYZ positions
- Column 5 : Group ID
- Column 6 (optional) : Label (Strings to be displayed as annotations) . No space is allowed.
SCALES :
- Column 1 : Group ID. Should be defined in POINTS
- Column 2 : Scale (float number)
COLORS :
- Column 1 : Group ID. Should be defined in POINTS
- Column 2-5 : RGBA colors (unsigned integers). Alpha is optional
LINES :
- Column 1 : Line ID
- Column 2 - : List of Point IDs. Should be defined in POINTS
POINTLABELS :
- Column 1 : Point ID
- Column 2 : Label (string)
An example is shown as follows:
## Three points with two groups
POINTS
1 -0.99 0.05 -0.26 1 VT-00594413
2 -0.59 0.09 0.08 1 DAH1522401
3 0.15 0.46 -0.99 2 CID
## Scales for groups
SCALES
1 1.0
2 2.0
## Colors for groups
COLORS
1 128 128 128
2 128 128 0
## A line connecting 3 points (points 1, 2, and 3)
LINES
1 1 2 3
## Three labels associated with 3 points (points 1, 2, and 3)
POINTLABELS
1 P1
2 P2
3 P3
XML File
PlotViz3 can also read a XML file containing the following elements:
- Cluster <cluster> ... </cluster> : each cluster contains the following elements
- <key>number</key> : group id
- <label>string</label> : group name
- <color r="num" g="num" b="num" /> : point color
- <size>number</size> : point size
- <key>number</key> : group id
- All clusters should be enclosed between <clusters> ... </clusters>
- Point <point> ... </point> : each data point contains the following elements
- <key>number</key> : point id
- <clusterkey>number</clusterkey> : group id
- <location x="num" y="num" z="num" />
- <key>number</key> : point id
- All points should be enclosed between <points> ... </points>
- Alll clusters and points should be enclosed between <plotviz> ... </plotviz>
An example is shown below:
<?xml version='1.0' encoding='utf-8'?>
<plotviz>
<clusters>
<cluster>
<key>0</key>
<label>0</label>
<color r="55" g="126" b="184" a="255" />
<size>1</size>
</cluster>
...
</clusters>
<points>
<point>
<key>1</key>
<clusterkey>1</clusterkey>
<label>VT-00594413</label>
<location x='-0.99' y='0.05' z='-0.26' />
</point>
...
</points>
</plotviz>
Screenshots and Samples
Main Window

Program Functions
PlotViz3 supports the following key functions:
- Rotation : Mouse drag with the left mouse button.
- Zoom in/out : Mouse wheel
- Selection : Press "s" or "S" key and mouse drag
- Move rotation origin : Press "Shift" key while rotating
- Show glyphs : Set Glyph's "Visible" true in the "Features" widget
Others are experimental at this moment and more details will be updated here frequently. See contacts for any question.
Papers
The follwing papers have been published related with PlotViz.
- Jong Youl Choi, Seung-Hee Bae, Judy Qiu, Geoffrey Fox, Bin Chen, and David Wild, "Browsing Large Scale Cheminformatics Data with Dimension Reduction," Proceedings of Emerging Computational Methods for the Life Sciences Workshop of ACM HPDC 2010 conference, Chicago, Illinois, June 20-25, 2010.
- Seung-Hee Bae, Jong Youl Choi, Judy Qiu, Geoffrey Fox, "Dimension Reduction and Visualization of Large High-dimensional Data via Interpolation," In the Proceedings of ACM HPDC 2010 conference, Chicago, Illinois, June 20-25, 2010
- Jong Youl Choi, Judy Qiu, Marlon Pierce, Geoffrey Fox, "Generative Topographic Mapping by Deterministic Annealing," In the Proceedings of the 10th International conference on Computational Science and Engineering (ICCS 2010), May 31 - Jun 2, 2010. Amsterdam, The Netherlands.
- Jong Youl Choi, Seung-Hee Bae, Xiaohong Qiu and Geoffrey Fox, "High Performance Dimension Reduction and Visualization for Large High-dimensional Data Analysis," In the Proceedings of the The 10th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (CCGrid 2010), May 17-20, 2010, Melbourne, Australia.
Contacts
If you have any question or problem in using our PlotViz3 or dimension algorithms, please contact us one of the following members:
Jong Youl Choi (Graduate student)
Yang Ruan (Graduate student)
Seung-Hee Bae (Graduate student)
Judy Qiu (Professor)
Geoffrey Fox
(Professor)
Emails : ![]()
