MagicPlot Manual

Plotting and nonlinear fitting software

User Tools

Site Tools


release:3.0

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
release:3.0 [Thu Dec 17 00:29:01 2020]
Alexander
release:3.0 [Fri Jan 29 14:25:41 2021]
Alexander
Line 1: Line 1:
-====== Introducing MagicPlot 3.0 [NOT RELEASED YET] ======+====== Introducing MagicPlot 3.0 ======
  
-To be released in late 2020. \\ +Released January 18, 2021.\\ 
-**This is a non-complete draft document. The features described are subject to change.**+[[:release_notes]]
  
-===== Setting Variables in Formulas =====+==== MagicPlot Pro and Student editions were merged into a single application ==== 
 + 
 +MagicPlot 3.0 provides the full-functional 30-days trial period without entering a license key. Some features will be disabled at the end of the trial period if the license key is not entered. This limited-features application may be used for non-commercial purposes as the 'Student' edition of the previous versions. 
 + 
 +==== MagicPlot 2.x licenses ==== 
 + 
 +  * All MagicPlot Pro 2.x perpetual and annual licenses purchased after 01.01.2020 are valid for MagicPlot 3.0. You can update for free: just download and run the new version, there is no need to re-enter the license key. 
 +  * MagicPlot Pro 2.x licenses purchased before 01.01.2020: [[https://magicplot.com/contacts.php|Contact us]] to get 50% discount for MagicPlot 3.0. You can continue using MagicPlot Pro 2.9.3, it can be downloaded [[:legacy_releases|here]]. 
 + 
 +===== 1. New good-looking cross-platform interface ===== 
 + 
 +MagicPlot 3.0 utilizes the new unified interface style [[https://www.formdev.com/flatlaf/|FlatLaf]] on all supported operating systems. It is fully HiDPI/Retina display compatible. 
 + 
 +{{:release:new-interface.png?nolink|MagicPlot 3.0 new interface}} 
 + 
 +===== 2. New in expressions: Variables, comments, special functions and more ===== 
 + 
 +==== 2.1. Setting variables in expressions ====
  
 In MagicPlot 3.0 you can set variables in formulas: write an assignment and a semicolon to separate it from the next part of the formula, for example: ''a=5; a*a + 2*a + 1''. The last expression (after the last semicolon) is the result of the formula and cannot contain an assignment. MagicPlot highlights all usages of the variable at cursor in the edited formula. In MagicPlot 3.0 you can set variables in formulas: write an assignment and a semicolon to separate it from the next part of the formula, for example: ''a=5; a*a + 2*a + 1''. The last expression (after the last semicolon) is the result of the formula and cannot contain an assignment. MagicPlot highlights all usages of the variable at cursor in the edited formula.
Line 10: Line 27:
 The variables can be used in Column Formula, Custom Fit Curve equation and in any other formula fields in MagicPlot. The variables can be used in Column Formula, Custom Fit Curve equation and in any other formula fields in MagicPlot.
  
-{{:release:variables.png?nolink|}}+{{:release:variables.png?nolink|Using variables in expressions}}
  
-==== Tip: Inserting Fit Equation to the Column Formula ====+=== Tip: Inserting fit equation to the column formula ===
  
 You can copy the fit equation with variables from the Report tab of a Fit Plot and paste it in any formula field including Column Formula (but it is generally better to use new ''Add to Table'' feature which generates a link instead of copying formula, see below): You can copy the fit equation with variables from the Report tab of a Fit Plot and paste it in any formula field including Column Formula (but it is generally better to use new ''Add to Table'' feature which generates a link instead of copying formula, see below):
  
-{{:release:report.png?nolink|}}+{{:release:report.png?nolink|Fit equation in Fit report tab}}
  
-====Comments in Formulas =====+==== 2.2. Comments in expressions ====
  
 You can insert comments in any formula using ''/*...*/'' notation: You can insert comments in any formula using ''/*...*/'' notation:
  
-{{:release:formula_comments.png?nolink|}}+{{:release:formula_comments.png?nolink|Comments in expressions}}
  
-Use ''Ctrl+/'' / ''Cmd-/'' keyboard shortcut to comment selection. Comments can be multi-line. Note that the single line comments using a symbol at the line start (like ''%%//%%'' or ''%''are not supported because line breaks are not taken into account in MagicPlot formula syntax.+Press ''Ctrl+/'' on Windows/Linux or ''Cmd-/'' on Mac OS to comment selection. Comments can be multi-line. Note that the single line comments using a symbol at the line start are not supported because line breaks are not taken into account in MagicPlot formula syntax.
  
-===== Simplified Column Formula Notation: $A for col(A) =====+==== 2.3. Bessel, Erf, Gamma, Beta special functions added ====
  
-We have simplified Column Formula syntaxcolumn and cell values can be inserted using ''$A'' and ''$A$1'' instead of ''col(A)'' and ''cell(A, 1)''The old notation also works.+The special functions listed below are now available in formulas. MagicPlot special function implementation is based on the well-known [[https://en.wikipedia.org/wiki/Colt_(libraries)|Colt 1.2]] scientific open-source library.
  
-The new notation only works with constant column/cell indexes. Use ''col'' and ''cell'' functions if you need to vary the indexex. ''col(i)'' and ''cell(i-1, j+1)''.+^ Bessel functions ^^ 
 +''besselj(n, x)'' | Bessel function of the first kind of integer order n |  
 +''bessely(n, x)'' | Bessel function of the second kind of integer order n | 
 +| ''besseli(nx)'' | Modified Bessel function of the first kind of order n = 0, 1 | 
 +| ''besselie(n, x)'' | Exponentially scaled modified Bessel function of the first kind of order n = 0, 1 | 
 +''besselk(n, x)'' | Modified Bessel function of the second kind of integer order n | 
 +| ''besselke(n, x)'' | Exponentially scaled modified Bessel function of the second kind of order n = 0, 
 +^ Error function ^^ 
 +| ''erf(x)'' | Error function | 
 +| ''erfc(x)'' | Complementary error function, 1 - erf(x
 +^ Gamma function ^^ 
 +''gamma(x)'' | Gamma function | 
 +| ''gammainc(a, x)'' | Regularized lower incomplete gamma function\\ x — the integration end point, a — the parameter of the gamma distribution |  
 +| ''gammaincc(a, x)'' | Regularized upper incomplete gamma function. \\ x — the integration start point, a — the parameter of the gamma distribution | 
 +| ''gammaln(x)'' | Logarithm of the absolute value of the gamma function |  
 +^ Beta function ^^ 
 +| ''beta(a, b)'' | Beta function. The values of a and b must be nonnegative | 
 +| ''betainc(x, a, b)'' | Incomplete beta function. \\ a, b — parameters of the beta function, must be nonnegative, \\ x — the integration end point, must be in the closed interval [0, 1] |
  
-{{:release:columns_in_formula.png?nolink|}}+==== 2.4. Miscellaneous functions added ====
  
-===== Setting Formula for Multiple Columns =====+^ Reciprocal trigonometric functions ^^ 
 +| ''csc(x)'' | Cosecant of an angle measured in radians, csc(x) 1/sin(x) | 
 +| ''sec(x)'' | Secant of an angle measured in radians, sec(x) 1/cos(x) | 
 +| ''ctg(x)'' | Cotangent of an angle measured in radians, ctg(x) 1/tan(x) | 
 +^ Other ^^ 
 +| ''xor(a, b)'' | Logical exclusive-OR operation | 
 +| ''rem(x, y)'' | Computes the remainder of the division operation x/y, same as ''x % y''. Added for compatibility | 
 +| ''isNaN(x)''  | Checks if x is NaN (Not a Number) or empty cell (see [[:NaN|manual topic]]) |
  
-The same formula can be set for multiple selected columnsYou can use this feature to compute matrices. The ''i'' and ''j'' variables are the current row and column indexes.+==== 2.5Improvements in Boolean operations ====
  
-===== Calculation in Reverse Row Order =====+=== The Boolean meaning of numbers in C language style ===
  
-You can swap ''from'' and ''to'' row indexes to reverse the calculation orderThis can be useful if the cell formula contains the value of the previously calculated cell in the same column.+MagicPlot uses ordinary floating-point numbers to store Boolean ''true/false'' values. All Boolean operators and functions return ''1'' for ''true'' and ''0'' for ''false''. However the ''if()'' function can accept any number as a condition, not ''1'' and ''0'' only. In the old MagicPlot 2.x versions the condition value is interpreted as ''false'' if the value is less or equal to zero. In MagicPlot 3.0 only zero value is interpreted as ''false''. This change was made to synchronize specification with C-like languages. The change will only be notable if you manually used some calculated numbers as Boolean condition in a non-standard way.
  
-===== Undo/Redo in Formula Editor =====+^ App version ^ The result of ''if(condition, if_true, if_false)''
 +| MagicPlot 3.0 and later | If ''condition !0'' returns ''if_true'' value. Returns ''if_false'' value otherwize. | 
 +| MagicPlot 2.9.3 and earlier | If ''condition > 0'' returns ''if_true'' value. Returns ''if_false'' value otherwize. |
  
-MagicPlot now supports Undo and Redo in formula editor using ''Ctrl+Z'' / ''Cmd-Z'' (Undo) and ''Ctrl+Shift+Z'' / ''Cmd-Shift-Z'' or ''Ctrl+Y'' / ''Cmd-Y'' (Redo) shortcuts. 
  
-===== Optimized Table Scrolling and Redrawing =====+=== Negation operator (!) and exclusive or operator added ===
  
-We have optimized the program code of the redrawing of the Table to eliminate lags when scrolling and editing a Table with tens or hundreds of thousands of columns.+  * New negation operator example: ''f = $A > 0; if (!f, $A, $B)''.  
 +  * ''xor(a, b)'' returns the Boolean exclusive or operation result for operands.
  
-===== Extensions in Boolean Operations =====+==== 2.6. Undo/Redo in formula editor ====
  
-==== Standard Boolean Logic: true is != 0 instead of > 0 ====+MagicPlot now supports Undo and Redo in formula editor using ''Ctrl+Z'' / ''Cmd-Z'' (Undo) and ''Ctrl+Shift+Z'' / ''Cmd-Shift-Z'' or ''Ctrl+Y'' / ''Cmd-Y'' (Redo) shortcuts.
  
-MagicPlot uses ordinary floating-point numbers to store boolean ''true/false'' values. All boolean operators and functions return ''1'' for ''true'' and ''0'' for ''false''. However the ''if()'' function can accept any number as a condition, not ''1'' and ''0'' only. In the old MagicPlot 2.x versions the condition value is interpreted as ''false'' if the value is less or equal to zero. In MagicPlot 3.0 only zero value is interpreted as ''false''. This change was made to synchronize specification with C-like languages. The change will only be notable if you manually used some calculated numbers as boolean condition in a non-standard way. 
  
-==== Negation Operator (!) Added ====+===== 3. Improvements in Tables: $A notation, formula for multiple columns and more =====
  
-We have added negation operator with well-known syntax ''!'' to the expression syntaxExample: ''if (!($> 0), $A, $B)''.+==== 3.1Simplified column formula notation: '$Ainstead of 'col(A)' ====
  
-==== Exclusive or Operator Added ====+We have simplified Column Formula syntax: column and cell values can be inserted using ''$A'' and ''$A$1'' instead of ''col(A)'' and ''cell(A, 1)''. The old notation also works.
  
-''xor(ab)'' returns the boolean exclusive or operation result for operands.+The new notation only works with constant column/cell indexes. Use ''col'' and ''cell'' functions if you need to vary the index, ex. ''col(i)'' and ''cell(i-1j+1)''.
  
-===== No more 'Data-Baseline' Column =====+{{:release:columns_in_formula.png?nolink|New column formula syntax: $A}}
  
-Staring MagicPlot 3.0 The 'Data-Baseline' column is no more added to the Table when creating Fit Plot. The 'Data-Baseline' column contained the Y values from the Fit Plot with the baseline curves subtracted -- the Y values that are actually plotted. This feature was introduced in the early MagicPlot version but it has proved to be mostly annoying.+==== 3.2. Setting common formula for multiple columns ====
  
-The 'Data-Baseline' auto-recalculated columns will be preserved when opening old projects in MagicPlot 3.0 for backward compatibility. You can delete these columns manually.+The same formula can be set for multiple selected columns. You can use this feature to compute matrices. The ''i'' and ''j'' variables are the current row and column indexes.
  
-Now you can manually create the 'Data-Baseline' column among with other fit result columns using the Fit Report tab of a Fit Plot, choose ''Y with baseline corrected'' and click on ''Add to Table'' button:+==== 3.3. Calculation in reverse row order ====
  
-{{:release:y-minus-baseline-adding.png?nolink|}}+You can swap ''from'' and ''to'' row indexes to reverse the calculation order. This can be useful if the cell formula contains the value of the previously calculated cell in the same column.
  
-===== Adding Fit Sum and Fit Curve Column to the Table =====+==== 3.4. Optimized table scrolling and redrawing ==== 
 + 
 +We have optimized the program code of the redrawing of the Table to eliminate lags when scrolling and editing a Table with hundreds of thousands of columns. 
 + 
 +===== 4. Fit results management: Adding curves to table, no 'Data-Baseline' column ===== 
 + 
 +==== 4.1. Adding fit sum and fit curve column to the table ====
  
 You can now add a column with Fit Sum or other alternatives to the Table which contains Fit Plot data using ''Fit Report'' tab. The alternatives are: Fit Sum, Baseline, Y with baseline corrected, Residual: You can now add a column with Fit Sum or other alternatives to the Table which contains Fit Plot data using ''Fit Report'' tab. The alternatives are: Fit Sum, Baseline, Y with baseline corrected, Residual:
  
-{{:release:add-fit-result-to-table.png?nolink|}}+{{:release:add-fit-result-to-table.png?nolink|Adding fit result to table}}
  
 Column(s) from the selected curve(s) (including Fit Sum) can be added to the Table using the context menu of the Curve itself in the plot area or in the curves list or from the context menu of the legend symbol: Column(s) from the selected curve(s) (including Fit Sum) can be added to the Table using the context menu of the Curve itself in the plot area or in the curves list or from the context menu of the legend symbol:
  
-{{:release:add-curve-to-table.png?nolink|}}+{{:release:add-curve-to-table.png?nolink|Adding fit curve to table}}
  
 The new columns are added to the Table where Y column of the Fit Plot data is located: The new columns are added to the Table where Y column of the Fit Plot data is located:
  
-{{:release:table-with-curves.png?nolink|}}+{{:release:table-with-curves.png?nolink|Table with fit curves}}
  
 The created columns have links to the Fit Plot. The Auto Recalculation is on by default for the created columns and can be switched off. The created columns have links to the Fit Plot. The Auto Recalculation is on by default for the created columns and can be switched off.
  
-===== Changes in Keyboard Shortcuts =====+==== 4.2. 'Data-Baseline' column is not automatically created ====
  
-  * The keyboard shortcut for Undo History was changed to ''Ctrl+Shift+H'' / ''Shift-Cmd-H''. +Staring MagicPlot 3.0 The 'Data-Baselinecolumn is no more added to the Table when creating a Fit Plot. The 'Data-Baselinecolumn contained the Y values from the Fit Plot with the baseline curves subtracted -- the Y values that are actually plotted. This feature was introduced in the early MagicPlot version and it has proved to be rarely used.
-  * A new shortcut for creating a Folder was added: ''Ctrl+Shift+N''''Shift-Cmd-N''.+
  
-===== Descriptive Statistics on Rows =====+The 'Data-Baseline' auto-recalculated columns in old projects will be preserved when opening in MagicPlot 3.0 for backward compatibility. In MagicPlot 3.0 you can delete these columns manually. 
 + 
 +The analog of the 'Data-Baseline' column can be created in MagicPlot 3.0 using the 'Fit Report' tab of a Fit Plot. Choose ''Y with baseline corrected'' in the drop-down list and click ''Add to Table'' button: 
 + 
 +{{:release:y-minus-baseline-adding.png?nolink|}} 
 + 
 +===== 6. Miscellaneous improvements ===== 
 + 
 +==== 6.1. Descriptive statistics on rows ====
  
 The statistics on table rows can now be calculated using Descriptive Statistics dialog. The Columns/Rows switch was added: The statistics on table rows can now be calculated using Descriptive Statistics dialog. The Columns/Rows switch was added:
  
-{{:release:row-statistics.png?nolink|}}+{{:release:row-statistics.png?nolink|Statistics toolbar}}
  
 +==== 6.2. Vertical and horizontal dash markers ====
  
-====Other Minor Enhancements =====+New marker types were added: vertical and horizontal dash. 
 + 
 +{{:release:markers.png?nolink|Marker types}} 
 + 
 +==== 6.3. Other changes ==== 
 + 
 +  * The keyboard shortcut for Undo History was changed to ''Ctrl+Shift+H'' / ''Shift-Cmd-H''
 +  * A new shortcut for creating a Folder was added: ''Ctrl+Shift+N'' / ''Shift-Cmd-N''
 +  * The calculator (menu 'Tools') now uses the default formula syntax and does not support comma as decimal separator.
  
   *  0000567: [Other] Adding table curve to multiple selected figures when copy-pasting table    *  0000567: [Other] Adding table curve to multiple selected figures when copy-pasting table 
   *  0000256: [Processing] Add empty cell (NaN) check function in column formula syntax    *  0000256: [Processing] Add empty cell (NaN) check function in column formula syntax 
   *  0000565: [Plots] Allow zero values for 1) Width of caps of error bars 2) Marker edge width 3) Marker size   *  0000565: [Plots] Allow zero values for 1) Width of caps of error bars 2) Marker edge width 3) Marker size
 +  *  0000584: [Other] Java 6 inspired bug: round(0.49999999999999994) = 1 
 +  *  Bugs Fixed
 +
 +See also: [[:release_notes]]
 +
 +===== Known issues =====
 +
 +  * [macos] On **MacOS 11 Big Sur** if the MagicPlot window is switched to full screen any dialog window (properties dialog) open full screen and the program interface freezes. Caused by OpenJDK bug: [[https://bugs.openjdk.java.net/browse/JDK-8256465]] \\ **Current workaround:** \\ 1. In MacOS Preferences -> General -> "Prefer tabs" set to "in full screen". \\ 2. Do not open MagicPlot window in full screen.
 +
 +  * [macos] For some fonts sub/superscript text is rendered with incorrect spacing between characters. Caused by OpenJDK bug: [[https://bugs.openjdk.java.net/browse/JDK-8227828]] \\ No fix currently available. The issue does not affect vector export.
 +
 +===== Appendix 1: Features available in licensed version only =====
 +
 +The features listed below are available in MagicPlot after entering the license key only and will be disabled after the 30-days trial period.
 +
 +  * Custom fit equations
 +  * Fit parameters joining
 +  * Guessing peaks
 +  * Adding fit curves to the table
 +  * Batch processing
 +  * Data processing (smoothing, FFT, etc.)
 +  * Table transposing and sorting
 +  * Color map plots
 +  * Vector image export, copying vector/raster image, printing
 +  * Drawing on plots, dimensions tool
 +  * Multiple axes boxes on figures
 +  * Figure style templates applying
 +  * Waterfall plots
 +  * Quick plot tool
  
-===== Bugs Fixed =====+===== Appendix 2: System requirements  =====
  
-  *  0000561: [Plots] Canvas raster buffer size is not updated properly when changing the screen scale +  * Windows 8.1 or later 
-  *  0000584: [Other] Java 6 inspired bug: round(0.49999999999999994) = 1 +  * MacOS 10.10 or later 
-  *  0000554: [Other] Incorrect braces highlighting in formulas with line breaks after paste on Windows  +  * Linux-like systemsMagicPlot is distributed as a .jar file which needs Java Runtime JRE 11 or later manually installed.
-  *  0000576: [Other] When copying color map plotable to another project with (table copy) the links to index columns are incorrect  +
-  *  0000484: [Drawing] Drawings are not snapped to canvas borders and center  +
-  *  0000570: [Other] In project tree inside Figure properties dialog moving Axes boxes and curves leads to creating a copy instead of moving  +
-  *  0000571: [Other] Drop target in Project tree with axes boxes and curves visible can be incorrect if only part of children is visible in the tree  +
-  *  0000568: [Other] The title of Export menu item in Project menu is not updated according to selected in project tree or active window  +
-  *  0000552: [Other] If Project Tree is not focused, it will not get focus when opening context menu on right click.  +
-  *  0000530[Other] Pasting a fit curve from another project comes with pasting data table from original fit plot  +
-  *  0000527: [Plots] Color map with manually set inverted range and axis scale from bigger to lower is drown as non-inverted  +
-  *  0000564: [Other] When pasting to multiple selected locations, dependent components must be copied only once  +
-  *  0000563: [Other] Draw instrument is not preserved when switching internal windows  +
-  *  0000562: [Other] Corrupted Fit Plot structure is pasted between the projects if canvas (Figure of Fit Plot) or curves table is focused  +
-  *  0000443: [Other] Annoying restoring of open windows after closing one of them maximized  +
-  *  0000534: [Table] Inspector toolbar update and table scroll is slow when adding 1000 rows to 10000 column table  +
-  *  0000464: [Other] Slow performance of Combo Box columns selector for big column count (10000)  +
-  *  0000526: [Other] Error in undo table creation after formula editing  +
-  *  0000508: [Other] Quick plot is not updated after column recalculation  +
-  *  0000521: [Other] Annoying selection in Project Tree when closing non-active window  +
-  *  0000522: [Plots] The legend background box does not account multi line text (regression)  +
-  *  0000402: [Other] Cannot put fit curve to the end of fit curves list in some circumstances  +
-  *  0000385: [Table] Constants A, B,... are not properly converted without col() if appropriate column is deleted +
  
release/3.0.txt · Last modified: Mon Feb 15 23:00:45 2021 by Alexander