TitleBodyTechnical Expertise RequiredCostAdditional Information
Adobe Illustrator

Professional standard software for creating original vector-based graphics. Includes powerful drawing tools and brushes.

The ai file format is a common vector format for exchange and its feature set allows creation of complex vector artwork. Illustrator imports over two dozen formats (including PDF and SVG). Of particular use to data visualization is importation of SVG, or scalar vector graphics, which is an W3C recommendation, and is often exported from other programs.

No programmingCost-basis

There are many extensions and plug-ins available for customizing this software, including those at the following link: http://www.adobe.com/products/illustrator/extend.html

Adobe Photoshop

Photoshop is a comprehensive photo editing tool produced by Adobe Systems. Users can manipulate photos, graphics, and other raster images using a variety of tools and predefined filters. Photoshop also allows users to record specific photo editing steps, which allows for automated batch processing. Photoshop is available as a stand-alone product, but is also part of Adobe's "Creative Suite" family of products. Photoshop Extended is an enhancement to Photoshop, and provides for enhanced 3D creation and editing.

No programmingCost-basis

Asymptote is a vector graphics language that can be used for technical drawing.

Being a language, it gives ultimate control to the user. Typesetting of labels and equations is done by LaTeX, which produces high-quality PostScript output. It provides a portable standard for typesetting mathematical figures and generates output in PostScript, PDF, SVG, or 3D PRC vector graphics.

Basic programming skillsFree

Wikipedia entry: http://en.wikipedia.org/wiki/Asymptote_%28vector_graphics_language%29

GIMP (Graphical Image Manipulation Program)

GIMP is an open source and free alternative to Photoshop. It is intended for use with Raster graphics, and can be used for creating new images, retouching photographic images and converting files to different file types. Gimp supports most image file types as well as other graphical image manipulation program file types. It is also possible to create custom scripts to automate a variety of tasks.

No programmingFree
Google Charts

Google Charts is a combination of two application programming interfaces (APIs), Google Chart API and Google Visualization API. Google Chart API creates static visualizations of data and embeds them into webpages. Some HTML programming experience is recommended. Available visualization types include standard scatter, line, bar, pie, and box charts as well as Venn diagrams, dynamic icons or callouts, formulas, and connectivity graphs. In addition, maps can be made and embedded into webpages.
The Google Visualization API creates dynamic visualizations that allow for user interaction within a webpage. These visualizations are created with Java scripting, and Google provides links to Java script tutorials as well as source or example code in a Java library. In addition to the visualization types available with Google Charts API, Google Visualization API include timelines, heat maps, tree maps, word or term clouds, filters for other visualizations, and interactive Google Maps.
Data sources that can be used for both APIs include any file that can be imported as a two-dimensional table, including text files, spreadsheets, and database tables. The data must be retrieved using a retrieval protocol and the structured accordingly. Google provides Java, Python, and Google Web Toolkit (GWT) libraries for data retrieval, as well as an API to retrieve data from Google Spreadsheets.

Basic programming skillsFree

For comparison of the two APIs: http://code.google.com/apis/charttools/docs/choosing.html


JMP is a desktop software package designed by SAS for dynamic data visualization and statistical data exploration. JMP includes an interactive graph builder that supports a wide variety of two- and three-dimensional graph types, and statisical reports are displayed along with plots for assessment and interpretation. Data can be loaded into JMP from common desktop file formats (e.g. text and spreadsheet files), as well as from a database or SAS server, and reports and visualizations can be exported in HTML, PDF and Adobe Flash formats for displaying and sharing results. JMP also integrates with the full SAS statistical software package to support more comprehensive analyses.

No programmingCost-basis

Schlotzhauer, S. 2007. Elementary Statistics using JMP. SAS Press. 480pp. (ISBN: 978-1-59994-375-6)


Keynote is an Apple's presentation software. Presentation software is primarily used for composing "slides" for presentations. Emphasis is on graphics and animation. Keynote files can be saved as PowerPoint.

No programmingCost-basis

MATLAB is an interactive data analysis and visualization environment that can be used to perform computationally-intense operations on large data sets efficiently. MATLAB also provides a high level programming language that supports rapid development of work-flow scripts and Graphical User Interface applications to automate repetitive tasks. A wide variety of discipline-specific software libraries, called toolboxes, are available from the publisher or user communities to extend the capabilities of the base program (e.g. statistics, curve fitting, image analysis and mapping). MATLAB programs can also leverage existing code written in Fortran, Java or other languages and source code is provided for most functions, allowing end-users to extend or customize routines for specialized analyses.

Basic programming skillsCost-basis
  • MATLAB documentation (http://www.mathworks.com/access/helpdesk/help/techdoc/)
  • Mathtools.net, a link exchange for technical computing (http://www.mathtools.net/MATLAB/)
  • Hanselman, D. and Littlefield, B. 2004. Mastering MATLAB 7. Prentice Hall. 864pp. (ISBN: 978-0131430181)
  • Scholarpedia article on MATLAB (http://www.scholarpedia.org/article/MATLAB)

NodeXL is a free, open-source template for Excel 2007 and 2010 that lets you enter a network edge list, click a button, and see the network graph, all in the Excel window.

You can customize the graph’s appearance; zoom, scale and pan the graph; dynamically filter vertices and edges; alter the graph’s layout; find clusters of related vertices; and calculate graph metrics. Networks can be imported from and exported to a variety of file formats, and built-in connections for getting networks from Twitter, Flickr, YouTube.

No programmingFree

GNU Octave is a high-level language, primarily intended for numerical computations. It provides a command line interface for solving linear and nonlinear problems numerically, and for performing other numerical experiments using a language that is mostly compatible with MATLAB. It may also be used as a batch-oriented language.

Octave has extensive tools for solving common numerical linear algebra problems, finding the roots of nonlinear equations, integrating ordinary functions, manipulating polynomials, and integrating ordinary differential and differential-algebraic equations. It is easily extensible and customizable via user-defined functions written in Octave's own language, or using dynamically loaded modules written in C++, C, Fortran, or other languages.

  • Octave Documentation and User Manual (https://www.gnu.org/software/octave/doc/interpreter/)
  • Quarteroni, A., Saleri, F., Scientific Computing with MATLAB and Octave, Second Ed., Springer, 2006, 318 p.