Figure Composer
Figure Composer is a standalone Java application with which a researcher can prepare, revise and review detailed scientific figures intended for journal publication. It is a relatively mature application that gets a lot of use in the Lisberger and other neuroscience laboratories. It is part of the DataNav suite because its graphic figure model is also used to compose the figure template for each navigation view defined on a hub in a DataNav portal.
Key Features
In the "slideshow" above are just a few examples of the kinds of figures that can be generated in the Figure Composer. As you can see, the program can do a lot more than plot a bunch of points in a 2D Cartesian coordinate system. Polar, semilog, and loglog plots are all supported. One can even build a flowchart in Figure Composer. Data can be entered as a set of individual points with standard deviations on each coordinate, {x+xStd, y+yStd}N ; as a series of samples taken at regular intervals, {xi , yi}N, where xi = x0 + i·dx, i = {0..N-1} ; as a collection of individual point sets all sharing the same x-coordinates, {x : y1, y2, ...}N ; or as a collection of individual sampled series sharing the same x-coordinates, {xi : y1i, y2i, ...}, where xi = x0 + i·dx, i = {0..N-1}. Additional data set formats support spike train-like rasters and "heat map" image data.
Regardless of how the data is stored in a figure definition document, it may be presented in a number of different forms within a graph: as a polyline connecting the well-defined points, perhaps adorned with optional marker symbols and error bars; as an unadorned polyline with an error band spanning ±1 standard deviation about a nominal trace; as a histogram. A "multi-set" collection may be rendered as separate polylines for the individual point sets in the collection, with another polyline tracing the average across those sets. Small multi-set collections (typically with just a few member sets) may be presented in a typical bar plot, in either the horizontal or vertical orientation, and in a grouped or stacked configuration (new in FC 4.6.1). Area and pie charts are also supported. Raster data sets are rendered as spike trains or as "counts-per-bin" histograms. There are two ways to present 3D data in a 2D graph. The aforementioned image data set (xyzimg) is really a 3D format in which Z is sampled over a regular grid in the X-Y plane; it is rendered as a "heat map" in which each value in the image is mapped to an RGB color via a specified look-up table, or color map. In addition, a new 3D discrete point set format (xyzset) was introduced in FC 4.6.2; it may be rendered as "bubble" plot -- an X-Y scatter plot in which the size and or color of the marker symbol drawn at (X,Y) varies with the Z-coordinate value.
More recently, support for 3D plots was introduced in FC 5.0.0. You can now render an xyzset as a 3D scatter, bubble or stem plot, or an xyzimg data set as a 3D surface mesh. Future releases will offer additional ways to present 3D data.
Structured versatility. The "palette" of graphic objects is general enough to let the author do a lot of different things -- as the examples demonstrate. In addition, a variety of shared and object-specific properties give the author considerable control over the rendering of each and every object in a figure: color, stroke width, font, font size and style; axis visibility, layout and positioning; layout and appearance of tick mark sets on an axis; optional graph annotations such as grid lines, a legend, calibration bars, labels, and arrows -- the list goes on and on. At the same time, Figure Composer enforces a hierarchical tree structure on the figure's content, vetoing constructions that make little sense, such as making a graph the child of a text label. Style attributes such as font, stroke color and width, and text/fill color are inherited down the tree. This makes it easier to impose a consistent appearance on the figure: simply set the style attributes once on the figure object itself!
An interactive figure canvas. A central element in the Figure Composer is the figure canvas. The canvas offers an approximate "what you see is what you get" (WYSIWYG) rendering of the figure. It is updated "on the fly" as the user adds graphs, labels, and other objects to the figure or changes a selected object's defining attributes. In addition, the canvas component offers a number of useful interactive features. It marks the currently selected graphic object with a translucent blue highlight. Selecting a different object is a simple matter of clicking on that object in the canvas. A number of mouse-activated gestures support moving or resizing certain types of elements directly on the canvas, panning another portion of the figure into the canvas window, or zooming in on a portion of the canvas.
Export to other formats. Figure Composer can export a figure as a JPEG or PNG image, an Encapsulated Postscript (EPS) file, or a Portable Document Format (PDF) file. The EPS file can be sent directly to a Postscript printer, and the EPS and PDF files can be imported into popular presentation graphics software packages like Adobe Illustrator™ for further refinements, incorporation into a large poster, etcetera.
Open compatible Matlab FIG files. As of Version 4.2.3 (July 2013), you can open a Matlab figure directly in Figure Composer! The application parses the Matlab Handle Graphics figure stored in the FIG file and converts it into an equivalent (to the extent possible!) FypML figure. You can then make additional changes to the figure and save it as a FypML file (you cannot save the changes back to the FIG file).
A cross-platform tool. As a Java application, Figure Composer should, in theory, run on any platform that offers a compatible Java runtime environment (JRE) version 6.0 or better. We recommend using the most up-to-date release of the JRE. In practice, we have found that some JREs leave a lot to be desired; so we are focussed primarily on supporting the program on Windows and Mac OS X, and to a lesser extent on Linux.
User Interface
Figure Composer presents a single application frame window with a menu bar near the top, immediately below the title bar. (NOTE: On Mac OSX, the menu bar is at the top of the desktop, in conformance with Apple's user interface design guidelines.) The majority of the frame window is filled by the main content panel and the Workspace Browser. The browser is docked to the frame window's right-hand edge and provides convenient access to FypML (.fyp) and Matlab figures (.fig) that the user has created in the past. The main content panel has the appearance of a tabbed pane, with one tab for each open figure; clicking on a different tab loads the corresponding figure into the content panel. That panel has a toolbar along its top edge and three central components -- the Figure Navigator, the Property Editor, and the Figure Canvas. The selected figure is rendered on the interactive Figure Canvas. You can use it to select a particular object within the figure, move that object by dragging it to another location, or zoom in on a particular portion of the rendering. The Figure Navigator is a customized tree-like control that exposes the hierarchical graphic model of the figure; use it to examine the figure's structure, find a particular graphic node, or change the order in which "sibling nodes" are drawn (the "Z order"). Finally, the Property Editor houses a variety of widgets that expose the properties, or attributes, of the particular object currently selected in the figure. As you make changes to an object's attributes on the Property Editor, the rendered figure is immediately updated on the Figure Canvas to reflect those changes.
This chapter starts out with a detailed description of DataNav's graphic model for a scientific figure, followed by a step-by-step example of how to create a figure with the program. The remaining pages examine each of the components of Figure Composer's user interface in much greater detail.