Version 5.0
Post date: Apr 12, 2016 11:35:19 PM
Version 5.0.3, TBD.
DataNav's FIG-to-FypML import engine and the utility matfig2fyp() have been updated to support importing 2D stem plots as generated by Matlab's stem() function, and true polar plots generated by R2016a/b functions polarplot(), polarscatter(), and polarhistogram(). These polar plotting functions create a new kind of Handle Graphics object that represents a polar coordinate system with a theta and radial axis; the underlying data for such plots is in polar coordinates (albeit theta is in radians rather than degrees) rather than Cartesian. Matlab polar plots generated by older functions like polar(), rose(), and compass() are actually Cartesian graphs that have been specially decorated to look like polar plots. Also, minor adjustments have been made to ensure the import engine works with Matlab R2016b.
Extended the FypML scatter3d element to support rendering a 3d "line plot", in which the points in the 3D data set are connected in order by a piecewise-continuous trace line, with or without symbols. To do so, be sure to select the Traced option (instead of the Stems option) in the Line/Stems tab of the 3D Scatter/Line Plot Properties editor. The FIG-to-FypML import engine and matfig2fyp() were updated to support importing 3D line plots as generated by Matlab's plot3() function.
Minor modification to the FypML raster element. When configured to render the raster samples in histogram form within a polar graph, the histogram will never span more than one 360-degree revolution. If the end E of the histogram range is more than 360 deg beyond the range start S, then E is set to S+360. Furthermore, all raster samples are mapped to their equivalent angle in the unit circle [S .. S+360] before binning. This is consistent with how Matlab's polarhistogram() function bins its data.
Version 5.0.2, 10 November 2016.
Support for translucent color. Figure Composer supports translucent color as of this release. Text/fill color, stroke color, the color of a solid background fill, and the data group fill colors for the bar, area, and pie charts can all be set to translucent values (alpha component neither 0 or 1). The color stops for any gradient-style background fill must be opaque, as must be the color map for a 2D or 3D graph. CAVEAT: While FC now supports translucency, please keep in mind that Postscript does not. If you export a figure to Postscript, any translucent colors in the figure will show up as their opaque versions. If you need to import a FypML figure with translucent elements into a program like Adobe Illustrator, be sure to use the PDF export format.
Improved support for histogram plots. The raster node was updated to provide more flexibility when rendering a histogram of a sampled data set, and to provide a way to import Matlab figures generated with the histogram() function introduced in Matlab R2014b. Two additional histogram-like display modes render estimates of the sample collection's probability density function (pdf) and cumulative density function (cdf). In addition, you can set the range [start..end] over which the sample data is binned; if start >= end, the actual observed sample range is used, as was the case prior to this release.
DataNav's FIG-to-FypML import engine and the utility matfig2fyp() have been updated to support importing histogram plots generated by Matlab's histogram() function, including the translucent fills often associated with these plots.
Updated the RGB color picker and background fill picker components to improve their appearance and support the selection and display of translucent colors.
All axis labels on 2D graphs are now rendered in the same manner, regardless whether they are multi-line or not. This eliminates the misalignment, for example, of a single-line X-axis label on one graph with a multi-line X-axis label on an adjacent graph.
Added Edit menu command Select like elements. This will make it easier to quickly apply the same change across all like elements in a figure (for example, all X axes) without having to select them all manually.
Bug fix: If you made a copy of a bar, area or pie chart and then changed a data group color or label on the original, the copy was also affected.
Version 5.0.1, 19 October 2016. This release adds 2D contour plots to Figure Composer's repertoire.
The contour node. This FypML 2D data presentation node renders a 3D data matrix (the xyzimg data format) in a 2D graph in one of several possible display modes: levelLines, a set of color-mapped contour level-curves; filledContours, a contour map with color-mapped bands between the iso-curves; heatMap, a heat map image of the data matrix, in which color reflects the Z-value at each (X,Y) location in the matrix; or contouredHeatMap, a heat map image with superimposed contour lines. It replaces the now-deprecated heatmap node.
Contour paths are generated using an adaptation of the "marching squares" algorithm. Color mapping is configured on the color (Z) axis of the parent graph. Any NaN values in the underlying data matrix map to the color map's NaN color in the contour map and heat image representations.
DataNav's FIG-to-FypML import engine and the utility matfig2fyp() have been updated to support importing typical contour plots generated by Matlab's contour() and contourf() functions.
Version 5.0.0, 21 April 2016. This major release introduces support for plotting data sets in 3D. This initial version can render surfaces and scatter plots in a 3D coordinate system that is projected onto the 2D canvas. Later versions will add support for other kinds of 3D plots in response to user requests. For an introduction to 3D plots in FC, be sure to review these two new sections in this guide: 3D Graphs and Data Presentation - 3D.
The graph3d node. This is the container for all 3D data plots. It represents a 3D coordinate system XYZ that is perspectively projected onto the 2D canvas. The graph is typically rendered as a 3D "backdrop" with XY, XZ, and YZ backplanes, X/Y/Z axis lines rendered along the outer edges of the boxed backdrop, with optional gridlines and an automated legend. You control the data range of each axis, as well as its measured extent in the 3D "world"; the orientation of the coordinate system (via rotations about the X and Z axes); the distance from the camera to the 2D canvas; and the location of the coordinate system origin WRT the parent figure. You can select from a number of different backdrop styles and have fine-grained control over the appearance of all axes (including tick marks) and associated gridlines. In most respects, editing an axis, tick set, or gridlines in the 3D graph is very similar to how it works for the 2D graph node. You can also re-orient and resize the 3D graph node interactively on the figure canvas.
Locating child nodes in a graph3d node. You can add a text label, text box, line segment, shape, or image node to a 3D graph. These nodes are located WRT the graph's "2D viewport", defined by the rectangle that tightly bounds the 2D projection of the graph's 3D data box (exclusive of the axes). This rectangle will change as the 3D graph's dimensions and orientation change. Child node coordinates must be specified in percentage or real measurement units; native "user" units don't make sense in this context.
New data presentation node - surface. The surface node is, to some extent, the full 3D version of the 2D heatmap element. It renders an xyzimg data set as a surface "mesh" in the 3D graph container. The individual mesh polygons that comprise the surface may be filled with the same color, or color-mapped IAW the average Z value for that mesh cell. You can also achieve a "wire-frame" look by turning off the color map and setting the fill color to "transparent". For very large data sets, rendering performance could deteriorate, so you can set the mesh size to subsample the data at the expense of rendering fidelity.
New data presentation node - scatter3d. This presentation node requires an xyzset data source and lets you create scatter, bubble, and stem plots in 3D. It is very similar in definition to the 2D scatter plot, except that it supports drawing a "stem line" from each data point to a specified XY base plane, and it lets you define a gradient fill for the scatter plot symbols. Using a radial gradient fill with a circle or oval marker helps to reinforce the 3D nature of the scatter plot.
Updated the FIG-to-FypML import engine and matfig2fyp() to support importing Matlab 3D plots generated by the Matlab functions scatter3(), stem3(), and surf(). Also updated put2fyp() so that its 'graph' and 'addgraph' operations will handle 3D as well as 2D graphs.
Minor changes/fixes: (1) Postscript rendering of a text block failed when the block was rotated at any angle not a multiple of 90 deg. (2) Tweaked the multi-object edit feature so you can edit multiply-selected axes at once. However, to apply the same changes to the X-axes of multiple graphs without affecting Y or Z axes, select the relevant graphs and make the changes in the "X" tab. Note that you cannot make changes across 2D and 3D graphs.