Introduction

Content on this page requires a newer version of Adobe Flash Player.

Get Adobe Flash player

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.21 (2012/12/17):

PlotViz3 version 0.8.7 (2011/12/05):

PlotViz3 version 0.7.1 (2011/09/13):

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 specify 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 lightweight glyph to improve rendering performance.

PlotViz3 version 0.3 (2010/12/06):

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 improved.

PlotViz3 version 0.1 (2010/11/14):

Previous PlotViz running on Windows only is available at here.

Sample data files are available :

 

Instructions for developers

PlotViz3 is dependent on the following external components:

Building in Windows

In order to build PlotViz3 from the source code, you should build those libraries in your system or use pre-built libraries. Specifically for Windows, it is also required to install the following programs

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.

  1. 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
    To know how to set environmental variables in Windows, please see the instructions here.
  2. 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)
  3. 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%
  4. Open a Visual Studio command prompt (Start > All Programs > Microsoft Visual Studio 2010 > Visual Studio Tools > Visual Studio X64 Win64 Command Prompt)
  5. Create a directory for building and run config.bat under PVIZ3_SRC directory. The following is an example: C:\> cd %PVIZ3_SRC%
    C:\pviz3> mkdir build
    C:\pviz3> cd build
    C:\pviz3\build> %PVIZ3_SRC%\config.bat -g vs
    This will generate a Visual Studio solution file (PVIZ3.sln). With this, you can compile and build PlotViz3. In Visual Studio, note the following:
    • 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.
  6. If you prefer command line environments, you can do with nmake as follows: C:\pviz3\build> %PVIZ3_SRC%\config.bat
    C:\pviz3\build> nmake
  7. 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.

In the following, we will explain how to install libraries and PlotViz3.

  1. Install a 64-bit binary distribution of Qt
  2. 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
  3. Install Boost C++ libraryand Google Protobuf $ sudo port install boost
    $ sudo port install protobuf-cpp
  4. To build ActiveMQ-CPP , we need Apache Portable Runtime, Runtime Utility, and UUID library. You can install them as follow: $ sudo port install apr apr-util
    $ sudo port install ossp-uuid
    Then, download ActiveMQ-CPP source code and build as follows: $ configure --prefix=/opt/pviz3dev --enable-shared=no
    $ make
    $ sudo make install
  5. Now check out PlotViz3 source code: $ svn co https://salsadev.indiana.edu/svn/repository/pviz3/trunk /dir/to/PlotViz3/
  6. Run config.sh and make $ mkdir build
    $ cd build
    $ ../config.sh
    $ make
    To make a package, type $ make package
  7. 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
  • 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" />
  • All points should be enclosed between <points> ... </points>
  • All 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

 

Simple example: Cube (pviz data file: text format)

-. Labels are not visible by default (Turn on Features > Label > Visible and select points after clicking Tool > Selection Mode)
-. Glyphs are not visible by default (Turn on Features > Glyph > Visible and adjust "Scale Factor" for sizes)

 

Oil Flow Data (pviz data file: text format and xml format)

-. Measured in 12 variables (dimensions)
-. Performed 1,000 observations with different flow settings
-. Each flow can be one of 3 flow configurations (i.e., 3 classes): homogeneous, annual, and stratified flows
-. Applied GTM to find cluster structures in 3-dimensional space
-. For more details about the data, refer to the paper: Svénsen, J., GTM: the generative topographic mapping. PhD thesis, Aston University, page 41-32, 1998 (available here)

 

Trading Data (1986, Cold War era) (pviz data file: text format and xml format)

-. Data from the New Geographical Digest (1986), analyzed in Cox and Cox (2001)
-. 20 countries traded with other countries in 1986
-. Pairwise matrix representing dissimilarities
-. Processed by MDS
-. For more details about the data, refer to the paper: Jan de Leeuwand Patrick Mair, Multidimensional Scaling Using Majorization: SMACOF in R, 2011 (available here)

 

Solvent Data: (pviz data file: xml format)

-. Source: Allesø, Morten, et al. "Solvent diversity in polymorph screening." Journal of pharmaceutical sciences 97.6 (2008): 2145-2159.

 

10K Sammon clusters (pviz datafile: xml format)

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 following papers have been published related with PlotViz.

  1. 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.
  2. 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
  3. 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.
  4. 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 :