The "recent files" list (File|Open Recent) now includes both FypML figure files (.fyp) and Matlab-generated figures (.fig) that have been recently opened in Figure Composer.
Fixed some minor bugs: (1) The "errorband" of a trace node failed to render if the stroke width was zero, even if the fill color had non-zero alpha. (2) FC incorrectly coalesced two scatter plots in a FIG file if their symbols differed only in the value of the "MarkerEdgeColor" property. (3) Tooltip for the polar axis grid divisions on the Polar Plot Properties editor was misleading.
A new polar plot element. While the FypML graph element can be configured to display data in polar coordinates, it is limited in some respects: (1) It does not support theta increasing in the clockwise direction. (2) Layout is limited to a single quadrant or a full circle; you cannot, for example, specify a theta axis range of [-90 .. 90] degrees. (3) "0 degrees" cannot point in any other direction than to the right. (4) The typical polar grid labels are not automated; you must add a label node for each grid label. The new pgraph element addresses all of these limitations. It was modeled after Matlab's new "polaraxes" object, introduced in R2016. Note that you can still use graph to render a polar plot, but it should be much easier to use pgraph.
Updated matfig2fyp() and the FIG-to-FypML import engine to convert any Matlab 2D polar plot -- whether the old-style "axes" specially configured to look like a polar plot, or the true "polaraxes" object introduced in Matlab R2016 -- to the new pgraph element.
Updated the put2fyp() utility to support all 3 graph containers now available in FC: the original 2D graph element, the new 2D polar plot pgraph, and the 3D graph container graph3d.
Updated FIG-to-FypML import engine to handle undocumented change to the Handle Graphics definition of a bar plot in FIG files generated by Matlab R2017b or later (affecting the "Vertices" property of the single "patch" child of a "specgraph.barseries" object). This affected proper conversion of Matlab figures containing two or more distinct bar plots within one graph.
Minor new feature: 2D Graph background color. With this release, you can set the background color of the 2D graph's data window to any opaque or translucent RGB color; previously, the background was effectively transparent. The FIG-to-FypML import engine was updated accordingly, mapping the "Color" property of a Matlab "axes" or "polarAxes" to the 2D graph's new boxColor attribute. You can also set the background color of the polar grid for the new pgraph element using this same attribute.
Minor bug fixes.
In Matlab R2016b, support for horizontal error bars and a property setting the endcap size were added to the errorbar() function. The FIG-to-FypML import engine and the utility matfig2fyp() have been updated to handle these changes. Improved the conversion code to support individual one-sided error bars. Note that Matlab allows for unsymmetrical error bars, which FypML does not support; when an unsymmetrical error bar (yNeg, yPos) is encountered, the conversion sets yStd = max(yNeg, yPos) in the "series" or "ptset" data associated with the trace node representing the error bar plot.
Matlab R2015b introduced new properties for translucent face and edge colors in bar, area and scatter plots ("FaceAlpha" and "EdgeAlpha" for area and bar charts; "MarkerFaceAlpha" and "MarkerEdgeAlpha" for scatter plots. The FIG-to-FypML import engine has been updated to process these properties appropriately.
In prior releases, the FIG-to-FypML import engine would convert a Matlab bar plot with a single data group into a FypML trace node configured in the "histogram" display mode. This conversion would fail if the bar plot was horizontal rather than vertical. Now, all Matlab bar plots are converted to FypML bar nodes, regardless how many data groups are in the bar plot.
The FIG-to-FypML import engine now combines Matlab scatter plots within the same 2D axes into a single FypML scatter plot if the individual Matlab scatter plots all have the same appearance.
Bugs fixed in FIG-to-FypML import engine: (1) In R2016a, handles for the legend and color bar associated with a Matlab axes object were moved from one undocumented property to another. As a result, the import engine failed to convert a visible graph legend or color bar from FIG files generated by R2016a or later. (2) Due to undocumented changes in tick label properties of the Matlab axes object, the import engine failed to detect custom tick mark labels in a figure generated by Matlab R2017b.
Enhanced the scatter3d node to support plotting the projections of the data onto any of the parent graph's three backplanes (XY, XZ, YZ). The projections are rendered as small filled dots at the projected coordinates on the backplane. Dot size is limited to [0..10] points; the default dot size is 0, which means the projection is not rendered. The user can set dot size and color for each backplane projection on the new Projected Dots tab of the 3D Scatter Plot editor.
Minor change in error reporting in the Workspace Browser and the figure file chooser dialog: If the selected figure file cannot be loaded, the error message is no longer displayed on the preview canvas, since that message is sometimes rather long (an exception trace). Instead, the string "Failed to load" is displayed on the preview canvas, and the error message appears in a scrolled text area below the canvas.
Various FC bug fixes: (1) The bar plot would fail to render if the X-coordinates in the data set were in decreasing rather than increasing order. (2) When the popup panel for the custom RGB color picker button was raised, it failed to reflect the current color of the invoking button (a regression bug probably introduced in the previous release). (3) When the source file for one of the figures currently loaded into FC was changed externally, the figure tab label changed to "RELOADING..." and FC attempted to reload the figure (unless the user had already modified the figure in FC). In this situation, if the figure load failed, the user was never informed and the tab label still read "RELOADING..." Now, if the load fails, the label is updated to reflect the source file name, but the figure is marked as modified (an asterisk appears in the label) since it no longer reflects the contents of that file.
As of this release, Figure Composer is no longer associated with the DataNav portal application suite, which has not been adopted and is in the midst of a "reboot". This user guide is now dedicated solely to FC, although you will see many references to DataNav and its portal-related applications in older entries within this version history.
As of this release, Figure Composer requires the Java 7 runtime environment. There were several reasons for this: (1) While Java 7 features are not strictly required in FC, we anticipate taking advantage of such features in future releases. (2) On Mac OS X Sierra, FC crashes on startup when launched in Apple's proprietary Java 6 JRE. (3) Java 8 has been the official Java release for almost 3 years now, and Java 6 and 7 are end-of-life and no longer updated by Oracle. While Figure Composer will require Java 8 in the not-too-distant future, that decision has been delayed because Matlab does not yet support Java 8 (as of R2016b).
The 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.
Improved keyboard navigation of the pop-up editor panels for the custom RGB color picker and background fill picker widgets. You can now cancel the pop-ups with the ESCape key, or confirm a change with Shift+Enter. Clicking outside the pop-up panel is now the same as canceling, which is the more typical behavior for a pop-up control.
Improved the appearance and simplified the behavior of the combo box-like button widget that selects a node's font family.
Updated the Windows self-extracting installer for Figure Composer to support installation on 32-bit or 64-bit Windows. Prior to this change, installing FC on 64-bit Windows would succeed, but FC would fail to launch with a cryptic "Failed to find Java VM" message box.