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
release:3.0 [Wed Jan 6 22:28:46 2021]
Alexander
release:3.0 [Mon Feb 15 23:00:45 2021] (current)
Alexander
Line 1: Line 1:
-====== Introducing MagicPlot 3.0 [NOT RELEASED YET] ======+====== Introducing MagicPlot 3.0 ======
  
-**This is a non-complete draft documentThe features described are subject to change.**+Released January 18, 2021.\\ 
 +[[:release_notes]]
  
-===== MagicPlot Pro and Student editions were merged into a single application =====+==== 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 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.
  
-===== New Interface =====+==== MagicPlot 2.x licenses ====
  
-MagicPlot 3.0 utilizes the new unified interface style on all supported operating systems. It is fully HiDPI/Retina display compatible.+  * 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 (except the discounted Student annual license). You can continue using MagicPlot Pro 2.9.3, it can be downloaded [[:legacy_releases|here]].
  
-===== Setting Variables in Formulas =====+===== 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 17: 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.
  
-===== Special Functions in Formulas =====+==== 2.6. Undo/Redo in formula editor ====
  
-The special functions listed below are now available in formulas:+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.
  
-  * besselj(n, x) 
-  * bessely(n, x) 
-  * besseli(n, x), n = 0, 1 
-  * besselie(n, x), n = 0, 1 
-  * besselk(n, x) 
-  * besselke(n, x), n = 0, 1 
  
-  * erf(x) +===== 3. Improvements in Tables: $A notation, formula for multiple columns and more =====
-  * erfc(x)+
  
-  * gamma(x) +==== 3.1. Simplified column formula notation: '$A' instead of 'col(A)' ====
-  * gammainc(a, x) +
-  * gammaincc(a, x) +
-  * gammaln(x)+
  
-  * beta(a, b) +We have simplified Column Formula syntax: column and cell values can be inserted using ''$A'' and ''$A$1'' instead of ''col(A)'' and ''cell(A1)''. The old notation also works.
-  * betainc(x, ab)+
  
-MagicPlot special function implementation is based on well-known Colt scientific library.+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-1, j+1)''.
  
-===== Improvements in Boolean Operations =====+{{:release:columns_in_formula.png?nolink|New column formula syntax: $A}}
  
-==== Standard Boolean Logic: true is != 0 instead of > 0 ====+==== 3.2. Setting a common formula for multiple columns ====
  
-MagicPlot uses ordinary floating-point numbers to store boolean ''true/false'' valuesAll 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.+The same formula can be set for multiple selected columns. You can use this feature to compute matricesThe ''i'' and ''j'' variables are the current row and column indexes.
  
-==== Negation Operator (!) Added ====+==== 3.3. Calculation in reverse row order ====
  
-We have added negation operator with well-known syntax ''!'' to the expression syntax. Example: ''if (!($A > 0), $A, $B)''. +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.
- +
-==== Exclusive or Operator Added ====+
  
-''xor(a, b)'' returns the boolean exclusive or operation result for operands.+==== 3.4. Optimized table scrolling and redrawing ====
  
-===== No more 'Data-Baseline' Column =====+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.
  
-Staring MagicPlot 3.0 The 'Data-Baseline' column is no more added to the Table when creating a 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.+===== 4Fit results management: Adding curves to table, no 'Data-Baseline' column =====
  
-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. +==== 4.1. Adding fit sum and fit curve column to the table ====
- +
-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: +
- +
-{{:release:y-minus-baseline-adding.png?nolink|}} +
- +
-===== 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''.+ 
 +The 'Data-Baselineauto-recalculated columns in old projects will be preserved when opening in MagicPlot 3.for backward compatibility. In MagicPlot 3.0 you can delete these columns manually. 
 + 
 +The analog of the 'Data-Baselinecolumn can be created in MagicPlot 3.0 using the 'Fit Reporttab 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|}} 
 + 
 +===== 6Miscellaneous improvements =====
  
-====Descriptive Statistics on Rows =====+==== 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 Improvements =====+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
-  *  0000599: [Plots] Add vertical and horizontal dash line as markers 
   *  0000584: [Other] Java 6 inspired bug: round(0.49999999999999994) = 1    *  0000584: [Other] Java 6 inspired bug: round(0.49999999999999994) = 1 
   *  Bugs Fixed   *  Bugs Fixed
  
-===== Appendix: Features available in licensed version only =====+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 and during the 30-days trial period.+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   * Custom fit equations
Line 161: Line 201:
   * Quick plot tool   * Quick plot tool
  
 +===== Appendix 2: System requirements  =====
 +
 +  * Windows 8.1 or later
 +  * MacOS 10.10 or later
 +  * Linux-like systems: MagicPlot is distributed as a .jar file which needs Java Runtime JRE 11 or later manually installed.
  
release/3.0.1609961326.txt.gz · Last modified: Wed Jan 6 22:28:46 2021 by Alexander