Release Notes

Origin 2020 Features

Ease of Use

Mini toolbars for easier 2D graph customization

Popup buttons when clicking on plot, axis, label, layer or page for easier customization.

Note: For a group of plots, 1st click will select a single plot. The popup shows two tabs. One is Group tab to customize the whole group. The other tab is Single plot to customize that plot only.

You can Shift+click to select group of plots. 

  • Axes Mini Toolbars (Little dialog like Grid Lines, Reference Lines, Special Ticks, Axis Break, Axes Dialog)
  • Text Object Mini Toolbar                                                                                                                              
  • Tick Label Mini Toolbar                                         
  • Data Label Mini Toolbar (Improved in Beta5)                                                                   
  • Line+Symbol Plot Mini Toolbar (line or scatter plot, some controls will be hidden)
  • Error Bar Mini Toolbar                                                                            
  • Column/Bar Plot Mini Toolbar                                                                           
  • Box Chart Mini Toolbar                                                                          
  • Histogram Mini Toolbar                                                                                                  

  • Pie & Doughnut Chart Mini Toolbar                                                               

  • Contour and Heat Map Mini Toolbars                                      
  • Layer Mini Toolbar                                                                                                         
  • Page Mini Toolbar                                                                          

Copy Paste Data Plots between Graph Layers

Click on a plot and then choose Copy Plot button on Mini toolbar

E.g. on the left graph below, click the continent border (black plot plot) and click Copy Plot button.  Then on the right graph, Ctrl+V. Border lines will be added. 

Labtalk command

layer.plot.copy() //copy active plot or group of plots

layer.plot2.copy() //for ungrouped plot, copy 2nd plot

Easy way to plot selected YX columns
Sometimes user's X column is on the right side of Y, if user selects Y and right X columns, Y will be plotted against the right X. System variable @DXR=1 to turn it off

Compact Popup for Font and Line Format

Font and some Line format controls are combined to make Plot Details dialog more compact. 

E.g. Font control are combined into one with down arrow at the end to customize further. 

Box Chart Line and Connect Lines control are also combined. 

Move Multi-Panel/Axis plots to new tab of Plot menu

There are too many plot types under Plot: Basic 2D. So we moved multi-panel and multi-axis plot types into a new tab: Multi-Panel/Axis

List View in Template Library

Template Library with large thumbnail view is not easy to use if there are many user-defined graph template. List View is added. 

Object Manager for workbook window
  • List all sheets in active workbook.
  • Click the sheet in Object Manager will activate the corresponding sheet in workbook.
  • Right click for common operations, such as Delete, Insert, Add, Move, Copy, Rename, etc.

User Tree at Sheet Level
Right-click on any sheet and bring up Worksheet Properties (or double click in gray area of active sheet). There is now a User Tree tab, and user can add and view sheet level entries.

Single click in graph is changed to select a single plot for grouped plots

When multiple data are plotted together, they are grouped. In the past, when click on a plot in the group, the group will be selected. 2nd click will select a single plot. 3rd click will select a single point.

In Origin 2020, 1st single click on a plot will select the single plot, 2nd click will select a single point. If you want to select the whole group, press Shift key when clicking on plot. Set system variable @gsm=0 to roll back to the old behavior.

Copy and paste data as as HTML table to other applications such as MS Word, etc.

Copy a block of cells from worksheet or a table from a report sheet and choose Copy Table (HTML, EMF).

and paste to Word or other application either as an HTML table or an EMF image. If the destination App supports editing the pasted HTML or EMF, table design and contents may be changed. EMF is useful for Adobe Illustrator which doesn't support pasting HTML.


Indicate the selected graph in preview of Merge Graphs dialog

Add a Find Apps... menu under Fitting, Peak Analysis, and Statistics menu
There are many Free and easier to use apps in these area and hidden. When built-in ones don't fit your need, click Find Apps in these areas.

Hotkey improvements in Worksheet

CTRL+SIFT+END extends to end of data column.

CTRL+SHIFT+HOME extends to 1st column 

SHIFT + Arrow to select multiple columns or rows like in Excel

Clear <auto> in From and To box when clicking on it in Set Column Values dialog
So user can directly key in From or To values. 

View: Show Plot Selection in Workbook menu when graph window is active

It's checked by default so selecting a single plot will highlight corresponding data in other windows, such as worksheet and other graph windows. 

Uncheck it if user doesn't want to highlight data in other windows.

Corresponding system variable @PS=1 by default. 

In Load Template dialog, arrow shows on top of column header by default

Choose File: New: From Template... to open a dialog. 

Templates here can be sorted by clicking column header. But it's not obvious.

In Origin 2020, an arrow shows on column header by default to indicate sort-ability.

Change Parameters... context menu when right clicking anywhere in hierarchical result sheet

In the past, user had to scroll up to the top of the hierarchical sheet and click the green lock to bring up the Change Parameters... context menu. In Origin 2020, Change Parameters... context menu is added no matter where you click in the sheet.

Sheet level context menu improvements

The quickest way to open Worksheet Properties dialog is by double clicking gray area to the right of column area.

But for worksheet with many columns, it's hard. And using Format: Worksheet... isn't that convenient.

So in Origin 2020, we added Properties... context menu when right clicking sheet tab or right clicking the upper-left corner of worksheet. 

The context menu on upper-left corner of worksheet is also more compact now. Some old menus are removed from there. 

Support Recently Used Fonts in some dialogs, such as Plot Details, Text Object, etc.

Click Font control in the dialog, user can see recently used font on the top of the dropdown list.

Not supported in Axis dialog.

Reduce unnecessary redraw of Object Manager to save time when editing large graph.
For graph which many data, object manager will NOT be updated unless there are actual changes to data plot in any of the layer. This will avoid slowness causes by necessary update of Object Manager. 

Support deleting rectangle box in enlarged graph

Before this change, if user clicks Scale in button, and then single clicks in graph window to create an independent enlarged graph with a rectangle box in source graph, it was very hard to delete the rectangle box. User had to choose Edit: Edit Mode and then delete it. 

Now user can select the rectangle object and press Delete key to delete it together with the enlarged graph.

Unhide all hidden rows or columns Context menu
Unhide All context menus are added under Hide/UnHide Rows and Hide/Unhide Columns context menus.

Many Windows in Folder slow to load and switching folders

For project file with many windows in folder, loading the project or switching folders in Project Explorer is very slow. System variable @PEN is introduced. It controls how many windows show at maximum when switching folders. Default is 0, which means no auto hiding. Set it to 20, then when loading opju or switching folders, only up to 20 window shows. Others are hidden. Right click the folder and choose Show All Windows to make them show.

System variable to disable graph rendering
For project file contains graph that will take forever to draw, can set @DDP to 1 to prevent graph drawing.

Turn off the Autosave of Untitled.opju

When you are working in Origin and haven't saved the project yet, it's called Untitled.opju.

  1. In the past, autosave would kick in every N minutes for such untitled.opju no matter how big the data is, which can be annoying and time conusming. Origin 2020 will check the current workspace size and give warning if more than 20MB for user to decide if autosave it or not. 
  2. Set system variable @DASU=1 to turn off Autosaving of Untitled.opju. 

Allow edit data label format for group plot
Allow edit data label format for group plot when edit mode=dependent

Customizable Floating Toolbar for graphs
Install the GToolbar.opx and WToolbar.opx, customized different Graph/Worksheet Toolbar respectively, hotkey F6 to open the Toolbar locates at current cursor, F6 again or switch to other window to hide it.

Use different shortcuts for main menu beginning with same initial letter
In 2020, we changes some menu shortcuts

New Graph Types

Pie Chart Improvements

Plot → Basic 2D

Many Pie/Donut samples in Help: Learning Center.

Sankey Diagram

Plot: Categorical: Sankey 

Plot: Categorical: Aluvial 

Kite Diagram

Plot: Specialized: Kite Diagram

Density Dots and Color Dots for Large Data

Plot: Basic 2D: Density Dots and Plot: Basic 2D: Color Dots

Population Pyramid

Plot: Statistics: Population Pyramid

It's a two layer histogram side by side. 

Before-After Plot
Plot: Basic 2D: Before-After

Graph Customization

Faster scatter plot drawing speed

Improved scatter drawing speed when turning off speed mode to show all data, specially for square shaped scatter plot and colormapped scatter plot, it's almost 5-10 times faster.

Also, support a new plot type, Color Dots. It can be almost 8 times faster than normal colormapped scatter plot.

For scatter plot with solid rectangle and circle shapes, improve the drawing speed when turn on transparency. It can be 1.5 times faster than before.

Faster contour plot drawing speed

Improved Contour plot drawing speed for large dataset, especially when some level's fill colors are set to be none.  

E.g. for 130,000 row of XYZ data, if you plot contour and turn the speed mode off. It may take a few minutes. In Origin 2020, it will be a few seconds. 

Data Highlight speed improvements for large data

If user has a large scatter plot with many points and use data highlight tool to highlight a region, it was very slow in the past.

E.g. plot a scatter graph with 2million points. Turn off speed mode. Highlight a region with >28k points. It takes about 5 sec in Origin 2020 vs 100 sec. in Origin 2019b. 

Offset data points in box chart and alternating the offset in pairs

Supersubscript button and Align Columns checkbox in Text Object Properties dialog

Left Arrow options when adding custom legend symbol

Dense Data Mode

Improve graph customization by turn on the dense data mode.

After customization done, user can refresh graph to update image.

It's on Page level mini toolbar. Click close to border of white page to see the page mini toolbar

Skip Points (or speed mode) keeps last point by default
When skip points in scatter graph, last point may be skipped.  In Origin 2020, last point will be forced to show by default. Set @smep=0 to roll back to old behavior. 

Separate rugs for each panel of Trellis Plot

Plot Data Organized as X,XErr,Y,YErr, Z as a 3D Graph with X and Y direction error
If there is another Z column after Z column and you choose Plot: 3D: 3D Scatter + Z Error,  the last Z will be plotted as Z direction error bar.

More options in Windrose Plot

Highlight corresponding data when selecting a single Box Plot
In Origin 2019b, highlighting corresponding worksheet data only worked for basic graphs such as line, scatter, column/bar.. 

Color Scale Improvements

Edit Range by X, Y and Z value in 3D graph
  • Data: Edit Range... menu is added for easy access.
  • For 3D graph, user can specify the range by X, Y values. Note: For data plotted by XYZ columns, By X and By Y radios are only enabled if X or Y is monotonic.

  • For 3D graph, Clip data also supports by Value on Miscellaneous tab of Page level in Plot Details dialog.

Improved tooltip for Contour, and Heatmap graphs
For contour, X, Y and Z values will show. For contour, interpolation will be used.

Reduce graph refresh when modify axis properties

Origin refreshed the whole graph when customing axis ticks, tick labels, title, color scale object, etc. in old versions, which could be very slow for large graph.

This is improved in Origin 2020 to reduce some unnecessary refreshing of graph.  

Support density color mapping

By points:Density color mapping.

Do not support 3D symbol for now.

Show Scaling Factor even if Symbol Size isn't indexed to a column

Size Unit can be set. We can choose Point, X scale, Y scale.

Precision and maximum value for Size option should follow axis scale, when size unit=X scale, Y scale.
When Size Unit=Point, it keeps old limitation.

Improvements on Rectangle box for Enlarged graph
 When the name of rectangle object is ZOOMRECT,
1. open Object Properties dialog should go to Dimensions tab by default.
2. Unit should be Scale by default.

For Rectangle/Circle/Polygon/Polyline/rake object,
1. Unit = Scale, show Right and Bottom editbox instead of Width and Height.
2. Unit = % of layer or % of page show Left Margin, Right Margin, Top Margin, Bottom Margin.

Add Update Dimensions to context menu of Zoom ROI, above Properties. Click it could get the scale info of related enlarged graph.

Do not select point if user click again exceed certain time frame
After user selects a plot, only if clicks again in a very small time 2 sec, then select a single point.

Double Click tooltip should not open preference dialog
Turn off double click tooltip to open Preference dialog

Improve Plot Highlight effect to work better with Customization
  1. Do not show indicator if user select plot
  2. Fade out other group if there are multiple groups

Auto Fill color for Error Bar
Add en option for Error bar for fill. When it's enable, error bar will show as lighter version of line color.

Data Point Tooltip should not open dialog for sankey/alluvial/parallel
Turn off the Data Point Tooltip dialog for sankey/alluvial/parallel 

Allow show Median Line when there is no box
Support show median line if there is no box as Box Type

link axes in child layer to parent with same from to should update scale mutually
  1. plot vertical 2 panel plot,
  2. open PD, go to layer2, link Axes Scales tab
  3. set X Axis Link Custom, X1=X1, X2=X2, ok
  4. go to layer 2 change X scale
    ==> only layer 2 change scale

In Origin2020, child layer change could also affect parent layer.

More work on Clip Data to Frame for edge points
Do not draw point when its value is outside axis scale in Origin2020.

3D XYY Stacked Bar/Wall Plot

Support Incremental stack for 3D plot.

For 3d XYY Bar, stack offset means offset in Y direction.
For 3d XYZ Bar, stack offset means offset in Z direction.

More Data Label Position Control for Polar
 We support following options for Position and Rotate for data label in polar coordinate:
  1. For Rotate, add <Radial> and <Angular> to dropdown list.
    • <Radial> is direction from polar center to data point.
    • <Angular> is perpendicular to <Radial> and in clockwise direction.
  2. For Position, add Angular Outer and Angular Inner to dropdown list.
    • Angular Outer means the point on label bounding box which is closest to the center of polar should be on the outer of data point
    • Angular Inner means the point on label bounding box which is farthest to the center of polar should be on the inner of data point
    • If angular outer or inner is selected, offset should not be horizontal and vertical. We should use Angular Offset(degree) and Radial Offset(% of font height)

Reverse Axis for Polar Radial Axis
 Polar radial axis support to reverse.

Axis Tick label: Show zero as 0, no decimal places

Set @tlc=1 to show zero as 0, no decimal places. 

Default @tlc=0 so zero isn't treated differently.

Import & Export

Multi-threaded ASCII import
The following system variables are added:
@IAMT=<auto> /// number of additional threads to use when import, will be auto detected by logical processors. Set to 0 to disable multi-threading.
@IAS=10 /// least file size (in Megabytes) to enable multi-threading.

System variable to control the protection mode of imported range

@IPDC(Data Connector) to control the protection mode for imported range.

  • 0 - no protection
  • 1 - protected, except reorder
  • 2 - protected

CSV Connector Improvements

E.g. sometimes data block starts or end with some keywords, e.g. [Data] or >>>>Start<<<<<<, etc. User can specify the start and end  data block marker. In the past, user needed to specify number of rows before data. 

Specify Long name, Units and Comments in Excel Connector

Drag and Drop support of Data Connector
When dragging and dropping data into Origin, inform user there is data connector and let user specify using data connector or old import way to import data. 

Origin Connector to allow basic SQL selection and Improve Origin Internal Query SQL Support
  1. Following object notations are supported in internal query SQL
    • _Type, _SName, _LName, _DatasetType, _Comments, _Visible, Column_Y, Column_Z, Column_P1, Column_D1, Column_[Name], , Sheet_SName, Book_SName, Book_LName
  2. New worksheet command to output SQL query result to workbook.
    • worksheet -qn: Output to new book
    • worksheet -qa: Output to active book, this will first delete all existing columns
    • Example:
      • worksheet -qn Select Column From Project Where Book_LName like "*simple*" and Column_LName like "YCO*";
      • worksheet -qn Select Column from Project where (_Type = "X" and _Visible = True);
  3. A Query button is added in Origin Connector. Open it to enter query.

Enhanced Database Import

  • Directly import images stored inside the database as pictures in worksheet cells
  • Protect imported data from editing, to ensure data integrity, 
  • @IPDB(Database Import) and @IPDC(Data Connector) to control the protection mode for imported range.
    • 0 - no protection
    • 1 - protected, except reorder
    • 2 - protected
  • @DBSV to control whether to show Views in table list on SQL Editor dialog or not. Default is 0 to not show.
  • Support Exclude Imported Data when saving as OPJU/OGWU for Database Import.
  • Improved Ease of Use and performance

In previous versions, import database by ODBC is slower than ADO, and cannot import large dataset. Now this has been improved in Origin 2020.

Setting @ODBCA = 0 (Default), then you should be able to import large dataset now.

Also, the performance of ODBC should be faster than ADO method now.

Also, when importing using Microsoft OLE DB Provider for ODBC for database connection, Origin will use ODBC by default now. It used to use ADO by default even for ODBC.

Option to encrypt or leave database credentials in clear text

When SQL Editor dialog launches, the user is prompted to encrypt their credentials. If the user choose not to, the password is displayed in clear text in the Edit Connection String... dialog. However, it still appears as *** other places in Origin. If credentials are encrypted the password appears as *** everywhere.

Note: This is has late breaking issues which will be addressed.

Data Connector Exclude saving only for larger files

Added system variables @DNS, @FSE, @FSEW and @FSEB to control if check Exclude Imported When Saving menu item for Data Connector and Database.

  1. @DNS ///exclude imported data or not when saving
    • 0 = (defualt) file check @FSE and web check @FSEW
    • 1 = always don't exclude, all data always save with project
  2. @FSE=500(default) //500=500kb, save data if the file size is less than this value, for CSV, Excel and Import Filter connector
  3. @FSEW=80(default) //in units of 100, save data if the size(rows x cols) of imported data is less then this value, for any web data and other files not listed above
    • 0 = never save web data
    • -1 = always save web data
  4. @FSEB=0(default) //in units of 100, save data if the size(rows x cols) of imported data is less then this value, for database

CSV connector needs to support ISO time with GMT
CSV Connector supports auto detect ISO time with GMT(for exmple: 2014-08-04T14:32:27.000+02:00) and set Column Format as yyyy'-'MM'-'dd HH':'mm':'ss'.'###.

Copy and paste density plot
  1. support copy page
  2. allow user to add another layer like double-Y kind to overlay another layer with or without data


Excel like cell reference in cell formula

Set a column with checkbox, dropdown list or combo list
1. Checkbox
2. Dropdown List with fixed entries
3. Combo box, dropdown list but user can enter new entries.

E.g. set column B as categorical.
Run wks.col2.edit=2, then click a cell, you can choose a category entry from dropdown list.
Run wks.col2.edit=3 and then click a cell, you can either choose a category from dropdown list or add a new category.

Click Any cell in column B, a dropdown list will show with filled categories. 

Worksheet Short Name, Long Name improvements
  • In the past when right clicking sheet tab, there is a Sheet Name to Display context menu for user to specify what name to show on the tab.

     In 2020, the context menu is hidden. A system variable @SSL is added to control sheet display name

                   0 – The way before Origin 2020

                   1 – Long name if present (default)

                   2 – Short Name

                   3 – Long Name

     Sheet Name to Display context menu is hidden unless system variable @SSL is set back to 0

  • In Plot Setup, Layer Contents dialogs, Sheet Name will use display name by default. Sheet Long Name, Sheet Short Name can be shown in these dialogs as well. 

Duplicate Project or Workbook without data keeps cell reference or cell formula

In the past, if there is cell formula and user right click workbook title bar to duplicate without data, or right click sheet tab and choose Duplicate Without Data, cell formula will be cleared.

Improved in Origin 2020 so user can easily create a new book/sheet with same strucuture and cell formula as original one.

In File: Clone Project... dialog, Clean Raw Data (Exclude Cell Link) radio button is added. 

Support copy a data range with column label rows

Improve Sum function to support rowwise sum

E.g. sum(A:D) to sum rowwise from column A to D.

Sum(A, C:D, F:H) to sum rowwise columns A, C to D and F to H.

Show Column Index and data size in Column List View

Filter will be triggered automatically when importing data

In the past, after importing new data, user needs to manually reapply filter.

Faster cursor response when clicking in a large worksheet with column filter

For large data, after adding filter in worksheet, it was very slow to do data manipulation in worksheet,

such as select/unselect cell(s) or column(s)

move or resize window.

Worksheet manipulation: Speed Improvement.

Origin 2020 Worksheet Data Exaction is 10 times faster than Origin 2019b.

Origin 2020 Split Worksheet has 208% speed improvement from Origin 2019b.

Origin 2020 Split Columns has 14% speed improvement from Origin 2019b.

Origin 2020 Worksheet transpose has 24% speed improvement from Origin 2019b.

Origin 2020 Worksheet Convert to XYZ has 60% speed improvement from Origin 2019b.

Origin 2020 Worksheet Unstack Data has 24% speed improvement from Origin 2019b.

Add View: Arrange Graphs menu item for Worksheet
When worksheet contains floating graphs, user can choose menu View: Arrange Graphs to place in top left corner of data area. This is useful if floating graphs are invisible or beyond the worksheet window.

Copy display string for hierarchical report table

Improve Ctrl + C to follow the Digits setting in Preferences: Options dialog when copy values in hierarchical report sheet.

User can still user Ctrl + Alt + C to copy full precision.


Speed improvements on recalculation

Improvement was made on SetReportTree() method, which is used to generate a results worksheet. So when there are many operations involves report sheet, you will get at least 10% time saving on calculation.

Besides, if there are many column formula operations, recalculation was done one by one in previous version and the time maybe a little long. But now in Origin 2020, you will see that all recalculation can be done in the same time and the calculation is very fast.

Speed improvements on Quick Peak tool

For large data, it was very slow to use Quick Peak gadget in previous versions.

  • Add gadget speed is more than 150 times faster than Origin 2019b – It may take a few minutes to open the gadget in Origin 2019b while it only takes a few seconds in Origin 2020.
  • Output result speed is 80 times faster – It may take a few minutes to output result sheet in a region of interest while it only takes a few seconds in Origin 2020.


  • System variable @PPBLN is added, default value is 1000. If number of input data points over this value, baseline data will not be output in the result Notes.
  • System variable @PPBMA is added, default value is 100. If number of find peaks over this value, no base markers and integrated areas shown on the ROI.
  • If choose the "New Output for Entire Curve" item, the performance is not improved yet.

Besides, pkFind tool is also improved, 7 times faster on calculation.

Speed improvements on Means Comparison in ANOVA tool

Improved the calculating speed of Means Comparison, and it will be 30% faster than Origin 2019b.

Besides, if choose not output the Means Comparison result, previous version will still do the calculation in background and waste time. Now this is fixed in Origin 2020, and will be 83 times faster than Origin 2019b.

Improvements in Normalization tool

When normalizing multiple datasets, can combine them as a single dataset to normalize.

Support simple LT expression in Add Straight Line and other XFs
  • Support LT Expression for Value, e.g. enter -log(0.05)
  • Support Page info variables and values from columns as input to XF, e.g.

Support copy and paste link for GetN numeric or string input
User can copy a label cell or a data cell, and paste link to edit box in XF dialog.

Combine all Word files into one file after batch processing

Simple Curve Math supports custom formula

In the past, user could only do basic calculation between two curves by choosing +,-, , / and ^ in Operator dropdown list. Custom is added in Origin 2020 to define custom formula by using y1 as input data and y2 as reference data, e.g. y1*5-y2^2.

Custom formula is also added in Simple Column Math tool.

Context menu on analysis lock to include hidden rows in analysis

By default when there is filter in column and it's input for an analysis, hidden rows will be ignored. But user can click the analysis lock and choose Ignore Hidden Rows: No to include hidden rows in analysis.

Auto means follow the setting in Worksheet Properties → Miscellaneous tab. 

Allow double clicking Axis to open Axis dialog in Peak Analysis Preview
This feature was turned off in some recent versions but user complains very hard to adjust axis scale. So we bring it back in Origin 2020. 

Copy All Open Tables in hierarchical result sheet

Kernel Density Calculation: New (fast) algorithm

For large datasets to plot 2D Kernel  Density, earlier Origin versions take several hours or more. 

Origin 2020 introduces new Density Method: Binned Approximate Estimation and adds an new option: Interpolate Density Points to improve speed greatly, which takes only several seconds.

A New Labtalk function is supported as below:

ks2d(vx,vy[, int bandwidth=0, int grid=151, int interp=1, int density=1])

Improve box plot in One-Way ANOVA
  1. For the box charts of One Way ANOVA and Statistic on columns, which has only one group column, Origin 2020 does not set subgroup.
  2. One Way ANOVA's box charts and Statistic on columns' box charts default templates follow Grouped Box Charts' setting in Plot Details dialog:
    1. Check Outliers checkbox and Box width=80 in Box tab.
    2. Uncheck 99% and 1%, Max, Min checkboxes in Percentile tab
    3. Border Color=Q13 and width=1.5, Fill Color: Auto in Pattern tab
    4. Caps Length=50 in Lines tab
  3. Rename Connect by Subgroup to Connect within Subgroup in Plot Details dialog Connect Lines tab for Grouped Box Charts

Better level crossing result for large duration points

Set Cluster Membership column as Categorical and Ascending type

In Origin 2019b, K-Means Cluster Analysis and Hierarchical Cluster Analysis, Cluster Membership column was already sorted and without link to the order of the original data.

In Origin 2020, K-Means Cluster Analysis and Hierarchical Cluster Analysis, Cluster Membership column keeps  the order of the original data and is set as Categorical and Ascending type.

support the "Open Books" button in summary report when appending results by column
Append by column will also support the "Open Books" button in summary report book like appending result by row when do batch processing, it will be convenient for user to check the intermediate workbook.

Batch Processing support Analysis Templates that having Data Connector

Origin support importing data by data connector since Origin2019b, therefore,batch processing also improve to support analysis template which source data is imported by data connector(such as CSV connector,Excel Connector,MATLAB Connector,etc).

note:currently Data Connector will be supported only when Data Source is Import From Files.

Data filter in analysis template will automatically trigger after importing data

In Origin2020, data filter will be auto triggered after importing data, it will be very convenient when do batch analysis on analysis template which having data filter in source data sheet. you do not need add script to handle data filter anymore.

note:This support in batch process dialog only when Data Source is Import From Files .

Allow ANOVA 'Number of Levels' to be > 10
In Origin 2020, Allow ANOVA 'Number of Levels' to 25.


Increase Row Size Limit for 64bit
Increase the worksheet row size limit from 90M to 200 M for 64bit.

Support numeric access to label cell

When label cell is a numeric value, you can access it as numeric value instead of string now. 


col(A)[D1] =;

This can be disable by setting @LRNA = 0.

Labtalk option to generate gadget output for all curves, all layers, etc.
We had the following to generate new output of a gadget.
Gadget gd = Rect; gd.Output();

But since we have New Output for All Curves, New Output for All Layers, etc., we should have more options of what to output.
So now user can use
gd.Output(2) //new output for all curves

0 -- normal
1 -- last
2 -- all curves
3 -- all layers
4 -- entire curve //this is Quick Peaks gadget only

Faster Date and Time Labtalk functions

Origin Labtalk functions belong to Date and Time category are moved to VC level to have faster speed.


Column A is filled with 1million rows of date data

Set Column B formula as WeekDayName(A)

In Origin 2019b and earlier build, it took about 95 sec, while in Origin 2020, it only takes about 1 sec.

Note: In Set Column Values dialog, you can click Function: Date and Time menu to see all date and time functions Origin supports. 

Add OriginC for note window
void test(string str = "Hello World.html")
	string strFile=GetOriginPath(ORIGIN_PATH_SYSTEM) + "\\Samples\HTML\\" + str;
	string strExport = "c:\\test\\test.html";
	int n;
	Note note;
	n = note.DoMethod("Load", strFile);
	n = note.DoMethod("EXPORTHTML", strExport);
	n = note.SetProp("View",0);
	n = note.SetProp("Syntax",0);
	n = note.DoMethod("DUPLICATE");
	n = note.DoMethod("Close");

Control Polygon or Polyline object thru LabTalk
  • <objectName>.PointCount

Suppose user has a polygon of 4 points, then script "polygon.pointcount =;" will return 4.

Also, can set polygon.pointcount=5 to add more points, then use polygon.x5= and polygon.y5= to specify the 5th point coordinates.

  • Get and Set XY coordinates to/from worksheet columns
// objname.GetXY(xDataset, yDataset); // copy from obj to dataset
// objname.SetXY(xDataset, yDataset); // copy from dataset to obj
// Ex:
polyline.getXY(book1_a, book1_b);
polyline.setXY(book2_a, book2_b);
polyline.getXY(book1_a); // copy only X values
polyline.getXY(, book1_b); // copy only Y values
  • Also when adding polygon, polyline, ESC will finish it.

LT command to reduce file size

Labtalk command file -cp is very useful to reduce a huge data file, E.g. a 14G CSV file, you cannot open it anywhere. You can reduce it to a manageable size first. The code is like this

dlgfile g:=*.csv;
file -cp 3Mb fname$;

to reduce it to 3Mb.

NAG Mark 26.1

NAG library is upgraded to Mark 26.1 version

Preshipped Python 3.7.2
Preshipped Python version upgraded to 3.7.2

Support Python Input() Method

Python 3.x: var1 = input ("Enter a number:")

Python 2.7: var1 = raw_input ("Enter a number:")

This will prompt a GetN box.

Convert floating-point from other formats to IEEE 754

Added following OC funtion to convert floating-point from other formats to IEEE 754.

typedef enum

	FLOATING_POINT_TYPE_VAX_F,            // 32-bit, ~[-2.9E-39, 1.7E+38]
	FLOATING_POINT_TYPE_VAX_D,            // 64-bit, ~[-2.9E-39, 1.7E+38]
	FLOATING_POINT_TYPE_VAX_G,            // 64-bit, ~[-5.6E-309, 0.9E+308]

	FLOATING_POINT_TYPE_IBM_LONG,         // 64-bit

bool convert_floating_by_format(LPVOID lpOutputBuff, LPVOID lpInputBuff, size_t nNumValues, FLOATING_POINT_TYPE nOutputFormatType, FLOATING_POINT_TYPE nInputFormatType);

For example:
void vax_test() { unsigned int a[] = {0x268bc2d9, 0x015dc2d9}; double f[2]; convert_floating_by_format(f, a, 2, FLOATING_POINT_TYPE_IEEE_DOUBLE, FLOATING_POINT_TYPE_VAX_F); // f = { -27.14381980895996, -27.12566566467285 } return; }

Origin C OC and LT Access to Data Connector

1. OC call LT Sub method in Page level, for example:

void test()
WorksheetPage wp = Project.Pages();
int nErr = wp.DoMethod("DC.Add", "CSV");

2. Support "wbook.DC.type$" to get the DC type.

3. Simpler syntax for web connector in LT, for example:

wbook.dc.add("JSON"); wks.dc.source$=""; wks.DC.Sel$="JSON/features"; wks.dc.import();

Support Column to use ComboList or Checkbox control


Adds to each cell in the column, one of the following:

1 = unselected check box
2 = list box (not editable)
3 = combobox (editable).

0 = Remove controls

wks.col2.edit=2; //add list box to column 2
wks.col2.edit=0; // remove list box from column 2

Installation and Licensing

Speed Up Origin Startup
Origin startup speed has been improved especially when User Files Folder is on LAN.

Invite colleague to try Origin
Users who have active maintenance service can choose Help: Invite a colleague to try Origin... to offer colleague a fully functional license for 21 days.

Origin 2019b Features

Ease of Use

Main Menu Reorganization
  • More horizontal menus.  (Import is removed to a separate menu called Data).

Workbook window active:

Graph window active:

Matrix window active:

Layout window active:

Notes window active:

No window active:

  • Import is removed from File menu and put under Data menu

Plot Menu Reorganization
  • Easier way  to see all templates in one category.
  • Recently used plot types are listed under Recently Used category
  • User-defined templates show under My Templates category
  • Quick access to Graph Maker and Template Library dialogs.

Copy and paste folder in Origin
  • Right click a folder in Project Explorer to copy the whole folder.
  • Right click another folder in Project Explorer to paste it there. 
  • Support paste to new session.
  • Support Ctrl+C and Ctrl+V hotkeys.

Copy and paste workbook in Origin
  • Right click a workbook in bottom panel of Project Explorer to copy.
  • Navigate to the destination folder in Project Explorer in same session or new session
  • Right click in bottom panel of Project Explorer to paste.

Project name shows at the beginning of Origin title

The information in Origin2019b title bar ordered as Project name - Path - Current PE folder - Origin version - Bit - License Type

If it's an unsaved new project, the order is Origin version - Bit - License Type - Untitled

  • Easier find which is current project name.
  • If multiple Origin opens, easier to use Window taskbar to find correct project to toggle to

Show column list view of Workbook as tooltip when mousing over workbook in Project Explorer

Block docked windows to auto expand when mousing over it

Customer complained Project Explore, Messages Log, etc. windows auto show while he is trying use tools on Tools toolbar which 

System Variable @AHBC is added to control this.

  • Set @AHBC=1 and restart Origin. 
  • Now move mouse on Project Explorer, it will not auto expand. You must click on it to see it. 

File:Clone Current Project ...
  • Clone the current project by clearing data only, clearing data and operation, or clearing and setting column calculation mode to None.
  • Add Data Connectors checkbox so the cloned project is connected to data in current project
  • After cloning, you can further modify project and then save it for future use.

Appending Projects Improvements

If user's projects

  • have no windows in root folder
  • contain only 1 subfolder

then when appending project files, and you choose No to not create subfolders for each project,

all windows will be put together to current folder.

HTML Report in Notes Window
  • Support HTML and Markdown language in Note window, 
  • Toggle Notes window between Render mode or normal mode (Ctrl+M)
  • System variable to set preferred language when pressing Ctrl+M. @NPS, 0 means HTML, 1 means Markdown
  • Note can be saved/exported to disk including all related elements such as images in a subfolder
  • New HTML main menu with Notes is active, plus context menu on Notes window title. Main menu has "Load..." with pre-shipped samples.
  • It will auto detect if the loaded file is HTML or Markdown
  • Support print HTML Style Notes window
  • HTML code can link to graphs, worksheet cells, string registers, etc either directly or using a Placeholder worksheet

HTML field codes:

  • Direct Links
    • {{str://%X%G.opju}}   -- current project name
    • {{cell://[Book1]Sensor01!B[4]}}  --- B4 value in Book1, Sensor01 sheet.
    • <img alt="{{graph://Graph1}}" width="500">
    • {{table://sheet1!}} — sheet1 or current book, {{table://[Book1]FitNL1!Parameters}} — parameters table of fitting result sheet FitNL1 in Book1  
  • Placeholders, like {{SlopeValue}}. Right click Notes window title and choose Edit Placeholder... to open the worksheet. Follow instruction there

Recently Used Fonts

Recently used fonts show on the top of the font dropdown list

Fixed some bugs when typing to find fonts

Font control for Notes window
Change Font and Font Size from Format toolbar for Notes window. It applies to all Notes window.

Reset all dialog custom positions on new Origin session

There are cases user moved some dialog, script window, etc. to other location .e.g. another monitor and when restarting Origin, user couldn't find them.

So in Origin 2019b, by default the dialog locations will reset. 

Set System variable @RDP=0 to go back to old behavior.

Copy cell and paste to a range


Select A1 cell and copy (Ctrl+C). Select B1-B3 and paste. B1 -B3 will be filled with A1 value.

Select A1 - A3 cells and copy (Ctrl+C). Select B1-B6 and paste. B1-B3 will be filled with A1-A3, B4-B6 will be filled with A1-A3.

Set System variable @CPNB=0 to roll back to old behavior.

Reorganization of some controls on Layer level of Plot Details dialog
  • Rename Display tab as Display/Speed tab. 
  • Scale Elements moved to Size tab.

Group Folder Sharing Improvements
  • Set an Origin as group leader of multiple groups from Preferences: Set Group Folder Location... menu


  • Easier way to publish different files to different groups from Preferences: Group Folder Manager menu

  • Set an Origin as group member for multiple groups

  • For App (OPX) files published, it will auto install immediately after group member gets the file. No need to restart Origin.

Easier way to update all Apps to latest version

User can right click the Add Apps icon in Apps Gallery and choose Update All to updates all installed Apps to latest version.

Sort Apps in Apps Gallary

Sort apps by alphabetic order, newest, oldest

Support search in Template library
User can type keyword in upper-right corner of Template Library dialog to search for user-defined graphing templates.

Plot: 3D: Parametric Surface menu to plot 3d parametric plot from data
Data needs to be organized in z, x, y, z(optional) matrix objects order in Matrix


New Graph Types

Rugs Plot
  • Several built-in Rugs Plot types, Scatter + Rug, Histogram+ Rug , Distribution + Rug
  • In Axis dialog, Rug tab is added to add Rug to axis with style and layout customization.

  • Context menu on axis or rugs to copy and paste format
  • Negative size to show rugs plot within axis frame with axis tick labels still stays with axis

Plot Heatmap from XY column or XYZ Columns

If XY columns is selected, Origin will open dialog for user to specify binning and counts to plot heatmap.

If XYZ columns are selected, dialog will open for user to specify binning, data identifier for Z, quantities for Z, etc to plot heatmap. E.g.

Split Heatmap
  • Plot → Contour → Split Heatmap.
  • In Plot Details, go to Spacing tab to adjust the gap

Graph Customization

View: Show: Frame will add frame according to current bottom x axis settings

In the past when using View: Show: Frame to add layer frame, it was a non-customizable thin black line. 

In Origin 2019b, it will follow the bottom axis color and thickness, etc. 

Customize line segment remove line between two points on a line+symbol plot

Ctrl+double click the beginning point. In Plot Details go to Line tab and set Connect as No Line.

Add Include option for Common Display so  adding layers, etc. will not affect existing layers.

Use Number of X columns in worksheet to decide number of layers in Stack and Multi-Y Axes graph

Number of layers will be same as number of X columns in worksheet. 

E.g. data in worksheet is XY XYY XYYY, 3 layers will be created for each layer. In the past, 6 layers would be created, with one Y data in each layer.

Stack lines by Y offset by grouping information in column label rows

User can subgroup plots by column label row and offset them.

After plotting all data,

In Plot Details dialog,

On Group tab, set Enable Subgroup by Column Labels

On Stack tab of Layer level, select Constant or Auto radio button and choose 

Offset Between Subgroup (in Group tab) for Constant / Auto checkbox

Customize Histogram to show Relative Frequency or Density in each bin

Pick Relative Frequency or Density in Data Height dropdown list on Data tab of Plot Details dialog.

Then customize Y axis tick labels to show percentage. #%

Independent Transparency control for multiple patterns of one plot

The Transparency controls are on corresponding tabs in Plot Details dialog.

  • For two curve plots with below and above colors, areas above and below can have independent transparency.
  • For Violin plot with box, violin and violin can have independent transparency.

Independent Transparency of 2nd color in Gradient Fill

When user sets some pattern in graph to be gradient fill with two colors, for 2nd color, there is independent transparency control.

This also applies to page and layer color with gradient fill.

Support line style customization for 3D vector graph

Support highlight column in worksheet when highlighting plot on graph
Click on a plot in graph to select it, corresponding column is highlighted in workbook

Support Color list as Colormap Fill

Support same symbol edge thickness no matter symbol size big or small

In the past in bubble graph, edge thickness is based on bubble size so the bigger the bubble, the thicker the edge.

In Origin 2019b, a checkbox Scale by Symbol Size is added to control it. 

Blank circle in the middle of Polar graph

On Scale tab of Redial axis, there is a Center at %  box. Set it can add circle from center of polar.

Showing Date and Time profile label in Contour Profile
If user's contour profile has X or Y axis with date or time, profile label will show so. In the past, Julian date was displayed.

Updated Tick Label Custom Display examples when combining multiple @options

Better handling of data point on the edge of layer frame

By default Clip Data to Frame is checked so data points outside layer frame are not be plotted.

But this causes issue such as symbol, error bar and data labels on the edge of layer frame will show in half, error bar show in half or not showing. 

We improved it so that if the center of the point is around the edge of layer frame, show the data point, error bar and data label in full. 

System variable @PEC=0 by default. Set it to 1 to roll back to old behavior of strict clipping.

Do not show symbol for line if a special point is created from label
In the past, hold Ctrl to select label and move, examples as Graph Samples: Line and Symbol Graphs: Line and Symbol Graphs - B&W Line Plot in Learning Center, big dots are shown, in 2019b, it won't shown.

Legend and Label Improvements

Legend notation for controlling column plot and text

Double click text side of legend enters in-place edit mode with cursor blinking

In previous versions, because the legend box shrinked to show Origin syntax when double clicking legend,

if you click on right side of text, the whole legend may be highlighted and if user pressed Delete key, all entries would be deleted.

Merge Graph Label Improvements

In Merge Graphs dialog, go to Add Label node and set Label Text as Custom. Set Custom as %H.

In merged graph, source graph names show as labels of each graph.

Add label on specified indices for Waterfall

Support leader line to labels of 3D vector graph

Allow moving axis titles to corners (vertices) of the ternary

Support Data label for polar line plot

Plot polar line plot and open Plot Details dialog. There was no Label tab. Fixed in Origin 2019b.

Import and Export

Data Connector

Connect to various data types (CSV, JSON, OPJ, OPJU, Matlab, Excel, HTML Table, XML, etc.) from web or on hard-drive. 

One workbook can only connect to one type of data. Different sheet can connect to different file of that type

Icon is added to upper-left corner with context menu to change Data Source, select different node to import, exclude data when saving, reimport (Alt+4), etc.

Exclude imported data when saving project to make project file size smaller.

The speed of import ASCII and CSV is almost 50% faster

The speed is also faster when using CSV connector.

Export Worksheet or Book to Excel File

File: Export: Excel menu is added to export multi-sheet workbook as a multi-sheet Excel file.

  • Option to export current sheet only is provided.
  • Right click a sheet tab and choose Exclude from Excel Export context menu to exclude a sheet from export.

Replace existing data from Multiple files Importing

New option 3 is added to System Variable @ISE. When setting it to 3 and import multiple data files to a book with multiple sheet,

no matter the sheet is empty or not, data will be imported to existing sheet first. 

Suppose there is a workbook with 3 sheets. There are data in them.

Select 3 other files to import with Multi-file Import mode as Start New Sheet.

Data will be imported to the 3 sheets, instead of creating 3 more sheet and import them.

Smaller Dialog Height for Import Wizard in E and G Origin
Height of Import Wizard in E and G Origin is reduced from 688px to 600px.

Copy graph and paste directly to online documentation tools

Ctrl+C or Ctrl+J and then Ctrl+V to online documentation tools, e.g. Confluence page, etc.

System variable @CPGD

1: also copy dib  — default
0: no dib
-1: include dib if remote or openGL

Hide Import HTML Table from Data: Import From Files menu
impHTML XF is very similar to the HTML connector. So we hide it from menu.


Exclude Imported Data when Saving Project

With ANY data import (not just Data Connectors), user can opt to clear the imported data when saving project.

This allows for your "analysis project" to stay small in size. You simply re-import the data, when needed, to perform further analysis

  • Right-click on Workbook, select Window Properties.
  • There is a new check box named "Exclude imported data when saving project."

Allow Saving Workbook as Analysis Template even if no operation

E.g. The following dialog shows if there is no operation (e.g. Analysis, Statistics, Set Column Value calcualtions in workbook), asking user how to clear data in saved template

Filtering Columns based on Column Label Row

Show worksheet in Column List View (Ctrl+W or View: Column List View).

Then add filter to the column that corresponds to the column label row. 

You can then choose Ctrl+W to switch back to normal view.

More ways to Split Columns

Split Columns by a reference column is supported in Origin 2019b.

Use Column Short Name directly in Worksheet Query

To define conditions for worksheet query in the past, user had to use Alias in the past. In Origin 2019, user can directly use column short name.


B="Drug 2" to find all rows with B column cell value "Drug 2"

Extraction of worksheet rows by Random sampling

Reduce by Group should support X as Corresponding X

When reduce data by group, user can set merge X by X of Min Y or Max Y. So the output X will be X value of found Y.

Support recalculation in Split Worksheet

Auto recalculation wasn't supported for Split Worksheet tool till Origin 2019b.

Support NOT logical operator in Column Filtering


Better support of doing fitting or peak analysis (including related gadgets) on Y offset plot.

In the past, if user plot stacked lines with Y offset and then do fitting, the fitted curves are not stacked and stay with original plot.

Improved in Origin 2019b.

Adjust height of worksheet label row for output columns

After analysis is done, there are long column comments long names in output columns.

In the past, we auto resized the column width to fit such info. 

In Origin 2019b, by default we adjust height of column label row to avoid very wide output columns.

Use @RCW=1 to rollback the old behavior.

Peak Analyzer: Support output  baseline subtracted peaks information after Finding Peaks
Before Origin 2019b, the peak center result didn't have option to subtract baseline. A checkbox Output Baseline Subtracted Peaks is added on last page.

Peak Analyzer: Report Baseline Mode in Notes node

Peak Analyzer: Add Hints tab in Fit Control dialog
On Fit Peaks page of Peak Analyzer, if user click Fit Control button. There is Hint tab on bottom panel to help user customize settings.

Support 1.5, etc. in Multiple of SD in Mask Cells by Condition dialog
In the past, when choosing Condition as Outliers by Std. Deviation, the Multiple of SC can only be integers.

Show All Info in One Label for Vertical Cursor

Use the button to toggle showing all info. in one label or individual labels.

Compare two vertical cursor

Use the button to add or remove 2nd vertical cursor.

Cluster Gadget.: X at Min Y, X at Max Y, Y at Min X, Y at Max X are supported

In the past, depending doing statistics on X or Y, we only show the min and max values.

In Origin 2019b, corresponding x or y info also shows.

Statistics Gadget: More outputs: besides x at min/max y, SE, confidence bands, percentiles are supported as well.

Integration Gadget: Set significant digits

Integrate gadget: Change the number of significant figures showing on top of the ROI box and output to Script window/Results Log

Support Censor Mark in Survival Plot

Choose  menu Statistics: Survival Analysis: Kaplan-Meier Estimator 

You can select to mark censored values on survival plot not

Improve Statistics results for some special NLFit types

For Nonlinear Multiple Dependent Variables Fitting, ANOVA table is improved.

Before 2019b, ANOVA table in the report only shows the results for the first dataset(Dataset B in the following case). Now the result is improved and similar to Global Fit's result, DF and TSS should be total data.

For the Nonlinear Fitting using Orthogonal Distance Regression, R-Square quantity is improved.

Before 2019b, R-Squared value may always be 1 though the ODR fit is normal. It is caused by the inappropriate TSS. Now the R-Square should be more accurate as TSS calculation is improved as:

TSS = sum( (y - ymean)^2) + sum( (x - xmean)^2)
R^2 = 1 - RSS/TSS
where TSS is the total sum of square, and RSS is the residual sum of square.


Multi-sheet range support

This is supported in many tools that supports multi-sheet range.

E.g. if user wants to do statistics in same range of data on multiple sheets, user can specify the input as [book1](1:5)!1[89]:17[95]

  • If it's not consecutive sheets, then what should be the syntax, (1, 3:5)!
  •  together with options in Input node "Combined as Single Dataset", user can get statistics of same range in different sheets easily.

Improvements on IF() and IFNA() functions
  • Fixed if(C=0,A,"") and C==0? A:"" issue of only filling 1st occurance of true condition.
  • Default else to blank. E.g. fill column A with 1, 2, 3 and enter if(A=2,100) in column B's F(X), row 1 and 3 should be blank values instead of missing.
  • IF() supports both numeric and string return. E.g. if(A<5,"small","big") works. In 2019, user needs to type if(A<5,"small","big")$

New Object is wbook but can be abbreviated as wbk

LabTalk string function improvements
  • IsEmpty() will give 1 for range out of bound. E.g. column A has text in 1st 4 rows only. In column B, enter formula IsEmpty(A) for rows from 1 to 10. row 5-10 will be filled with 1.
  • When concatenating two string columns, use longest data to set the range. E.g. if there are 5 rows of data in column A, while 10 rows of data in column B. Set column C's formula as A$+B$.  Origin uses the 1st vector to decide the calculation range so only 1st 5 rows was conconcated. Origin 2019b, usea the longest rwo to decide range. To go back to old behavior, which used the first vector i2, set @VAS=0

New Switch for DOC command
  • doc -rn: Make current project as Untitled and new project
  • doc -e WM: Execute for all workbooks and matrix books in the project
  • doc -e LBC: Execute for all sheets on book with Data Connector

LabTalk command to clear imported data

del -di: Delete imported data in current sheet

Improvement on Project class
  • New control bit adds to GetPath member

The following will get empty for Untitled, and if has path, will not have last backslash

  • Get PE tree

This is mainly to allow easy changing code to generate the tree for Origin Connector, which orglab is making the call to get display tree.

Tree tr;
Project.GetTree(NULL, tr);

OC to provide access to LabTalk LT properties on OriginObject
  • GetProp
  • SetProp


void MyTest(int ntype = 0)
	Worksheet wks = Project.ActiveLayer();
	string strName;
	double vv;
	wks.GetProp("name", strName);
	wks.GetProp("ncols", &vv);
	printf("Current sheet is %s, contains %.0f columns.\n", strName, vv);
	wks.SetProp("LongName", "My Data"); //set worksheet long name
	string str;
	if(0 == ntype)
		wks.GetProp("dc.Source", str);
	else if(1==ntype)
		wks.GetProp("dc.Path", str);
		wks.GetProp("dc.Sel", str);
	printf("Data Connector source: %s.\n", str);

Support passing LT tree to OC function

Both Tree and TreeNode datatype are supported.


OC Code:

#pragma labtalk(4)
int tt(Tree& tr, string strAppsPath)
	Tree tr1;
		return 1;
	tr.Replace(tr1, TRUE, TRUE);
	return 0;
#pragma labtalk(0)
Tree tr1;
string strApps$="%@AOpxList.xml";

Code Builder Improvements for Apps
  • Context menus to exclude files and load dependents at App Folder level
  • Context menu on OGS file to run its Main section.
  • Context menu on file level to load dependent files to TEMP folder

Build new Python package OriginExt to access Origin functionality from external Python through COM.
OriginExt is a Python package that enables you to access Origin functionality from Python. OriginExt is built on Origin's COM/Automation interface that Python functions as the client application that connects with Origin. It allows exchange data back and forth between Python and Origin and can also send commands from Python to be executed by Origin.

OrgLab Worksheet::GetData() Inconsistent with Column::GetData() and MatrixObject::GetData()

Added the optional argument lowbound to the COM server's method Worksheet::GetData():

[in, optional] VARIANT nRowStart,
[in, optional] VARIANT nColStart,
[in, optional] VARIANT nRowEnd,
[in, optional] VARIANT nColEnd,
[in, optional] VARIANT format,
[in, optional] VARIANT lowbound,
[out, retval] VARIANT * RHS);

OC GetN Auto checkbox Improvement
  1. Added new bit GETNEVENT_ON_AUTO_BUTTON_CLICKED for auto checkbox event.
  2. Support hiding customizable value.

Support to detect and let the dialog know when delete the GraphObject
Support dialog event ON_GROBJ_DESTROY(_fn) on graph object destroy.

Include code supports more relative path in OC

Support relative path for Apps folder in OC, for example, 

#include "file_in_Apps.h" // directly inside Apps folder
#include "AppsSubDir\awesome.h" // a sub-folder named AppsSubDir inside Apps

Improve GraphLayer::AddPlot to support some important plot type
GraphLayer::AddPlot supports more plot type, IDM_PLOT_INDEX_COLOR, IDM_PLOT_INDEX_SIZE, IDM_PLOT_INDEX_SIZE_COLOR, etc.

Allow OriginC VideoReader class in Origin Standard version

Installation and Licensing

Skip Reboot Dialog at end of QuietMode Install

In Config.ini file, QuietModeNoRebootDialog is added.

If QuietMode and QuietModeNoRebootDialog are both set to 1, then after the end of installation, no Reboot PC page will show.

QuietModeNoRebootDialog setting will be ignored if QuietMode isn't 1.

Origin 2019 Features


A Start Menu button has been added to the bottom left corner of the Origin interface.

The New Workbook dialog allows you to:

Support Numeric Units, pi, km etc in worksheet and graph

Define Preview of Book and Graph Templates

When saving book or graph templates, user can specify his/her own preview image. 

This also works when saving Workbook Window as OGWU or saving Workbook as Analysis Template OGWU 

Add Sparklines button on Columns toolbar

Click it will add sparklines on selected columns.

Help: Origin Central is renamed as Help: Learning Center.

Under Help: menu, Origin Central... is renamed as Learning Cener...

There are only 3 tabs

  • Graph Samples
  • Analysis Samples
  • Learning Center

Reorganized Help: Open Folder to open useful folders:

Adds some new graph types to 2D and 3D Graphs toolbars.

SCN icon improvements

Easy way to pick a color and get its HEX value.

X-Function Colors is added.

Run "colors" in Script window. Colors dialog will open for user to pick a color.

Click OK. Hex value will be dumped.

Project Explorer Improvements

New mechanism to show information to user such as free upgrade to new version

In the 1st few instances of Origin, you will see the following notification on upper-right corner of your Origin. It will fade away after 10 seconds. It's for testing our new way to notify user of future release. The link goes to wrong location. U can ignore that.

Improvements on By Points tab of Color control in toolbar and dialogs with applicable color controls.

Reorganize and reduce Help menu entries
Reorganizing and also regrouping the Help Menu

Select multiple layers by clicking+Shift on the layer icon on the graph
Press Shift+click on layer icon to select multiple layers on the graph.


Data Visualization Enhancements

Data Point Tooltip

Data Highlighter

More Line Plot Styles

Better Default Numeric Display Format For X Y Z in Tooltip

Data Tooltip display custom format, following case covered:

  1. User unit
  2. Engineering
  3. DMS
  4. PI
  5. Percent

Pick point tool

When mousing over a data point, data point tooltip shows. Right click in the tooltip and choose Pick Point to enter picking point mode.

Double click or single click +Enter key to keep on picking points. Press ESC to finish picking points. A output sheet will be created with pointed points for further analysis. 

New Graph Types

Trellis Plot with Double-Y Axes

Parallel Plot

Cluster Plot

Known Issue: Slow when there are many panels.

Row-wise Line Series with Error Bars

When data is organized row wise, choose Plot: Line+Symbol: Row-wise to plot it.

  • YError column is supported.
  • X info. can be put to column label rows.

Contour with Categorical Z Values

If Z column is categorical, when choosing Plot: Contour: Contour with Categorical to plot it.

The graph will be plotted with color scale for each category.

Heatmap with Labels

Choose Plot: Heatmap: Heatmap with Label to directly plot a heatmap with Z values showing on each cell.

Customize the label on each cell on Labels tab of Plot Details dialog. E.g. Set decimal digits to display, etc.

Choose Y or Y, etc. from Label Form dropdown list on Labels tab to show  X or Y value as label.

Tetrahedral Scatters/Lines/Line+Symbols

For XYZZ data, Origin can normalize each row and plot in tetrahedral (Pyramid) coordinate system.

Violin Plot

Stacked Histogram

Grouped Scatter Plot

Graph Customization

Row Title for Tick Label Table

Support %(CRLF) in Legend to wrap text

This works on Legends/Titles tab of Plot Details dialog and Update Legend dialog.

First set Translation mode to be Custom. Then specify the syntax with %(CRLF) in between.

Legend Symbol context menu is added
Right click legend in graph and choose Legend → A quick way to go to Symbol tab of Legend Properties dialog to customize symbol part.

Legend Symbol Width scale factor on Symbol tab of Text Object - Legend dialog
Easy way to set line or line+symbol kind of legend longer or shorter.  There was Legend Symbol Width control in Plot Details dialog for this in the past but hard to find. 

legend.align=1 by default for Legend
It's set to 1 by default so legend will be aligned to left properly even after modifying the text.

New Legend for Fill Area Plot

Both above and below colors are supported in legend.

In the past, only above color was supported.

Image Plot should have missing value support similar to contour
Add Missing value control for Image plot.

Enable vertical auto position for box chart label
Add Auto Reposition to Avoid Overlap checkbox in Label tab.

Display the median value in box chart
Add a Median check box to show Median value Label

Customize outliers in box chart
In Plot Details dialog, if Outlier is checked on Box tab, then Outlier tab appears for outlier customization.

Longer minus sign in Graph

Rename plot group's long name in Object Manger

Right click group node, e.g. g1, g2 and choose Rename to give a meaningful group name.

Such group long name shows in

  • Data menu
  • Layer Contents dialog when mousing over group name
  • Labtalk commands are added to set and get group name:

    set %C -g1 Name; // %C must be Group Head get %C -g1 Name;

Object Manager: Data manipulation related to grouped plots

Usually when multiple data is selected and plotted, they are grouped so different colors are assigned to each pot.

Right click a plot in the group in Object Manager and choose Remove, the plot will be removed from the group. In the past, the whole group is removed.

This also works if you single click twice to select a plot in a group on the graph and then choose Remove

There is also Set as Group End context menu. When it's selected, all plots below it will be isolated from the group. 

Object Manager: Move Plot to Other Y Axis

Object Manager: Move a plot from one layer to another by dragging in Object Manager

Drag a plot in Object Manager to another layer in Object Manager and release the mouse.

Edit Range supports specifying X values and an Apply button

User can right click a plot and choose Edit Range context menu to edit the display range.

In the past, user had to specify by row index. In Origin 2019, user can specify x range. 

Apply button is also added.

Support 3-Color Limited Mixing for Color Mapping

Support Categorical legend for 3D xyz bar plot
Before Origin 2019, categorical legend isn't supported in 3D xyz bar.

Show Major tick at min and max of axis

Support Custom Display Formats for Contour Labels

Smith Chart handles negative real for z
@NRSC = 1 to disable this change

Display 24:00 as 00:00 in time data

Added a system variable @DSRS to specify if display 24:00 as 00:00 on Axes tick label. By default @DSRS = 1, means display 24:00 as 00:00, can also turn it off by setting @DSRS = 0.

Add independent color scale on layout window
When adding 3d or contour graph with color scale into layout window, the color scale is very small in each graph. In Origin 2019, you can add an independent color scale object in layout and customize it to match the color scale in graph.

Axis dialog to support Custom Numeric format
Easier way to enter From and To, special ticks, reference lines and break, etc. in axis dialog. Allow user to type 0 and 2 which will refer to 0 and 2 pi. The same issue exists when set Major Tick type as By Custom Positions; Special Ticks, Break, and Reference Lines tab.

LabTalk set command for custom increment list more support

Newly switches are added for set command to set custom increment list for color.

set %c -cuf XXXX; // fill color of pattern
set %c -cus XXXX; // edge color of symbol
set %c -cusf XXXX; // symbol fill color

Need 4 directions margin controls for fit layers to page
 Support left right top bottom margin for fit layers to page. Note we do not need to modify the gui of fit layers to page, just let the margin setting apply to 4 directions.

Show Master Items on Screen should be default and convert existing
  1.  Allow any object to be skipped as master items
  2. Apply page size to all
  3. Allow rotate from Landscape to Portrait
  4. LT template saving needs to dump message

Support more than one custom incremental lists for one property of one plot
Support more than one incremental lists for one property(currently is color or pattern) of one plot. User could ctrl-click to edit the increment list in fly-out to arrange elements. 

Smith Chart improvements requested by Michael Lehnert Additive
  1. Support zoom
  2. Data reader supports more results
  3. Handle negative real for z

Show Categorical values in Color List, Shape List, Interior List tab

Add a 2nd column "Categories" in the following tabs and increment editor dialog:

  1. shape list tab
  2. interior list tab
  3. color increment editor dialog
  4. pattern increment editor dialog
  5. shape list tab of 3D bar

2d Vector graph should also support Scale Length with Magnitude like 3D vector
 Support Scale Length with Magnitude for both 2D Vector XYXY and 2D Vector XYAM. Note 2D Vector XYAM have Magnitude control to modify magnitude, the Scale Length with Magnitude should base on the modified magnitude. 

Speed issue when there are too many panels

Limit the number of panels. System variable is @nop. The value of nop is 50 by default.

Support adding color scale on layout window
Support adding independent color scale to layout window by Add Color Scale button in add object to graph toolbar.

Contour label consider custom boundary
When custom boundary is on, Contour label will consider boundary now. Use @TCBL=0 to disable the feature

Line Cap Control for Plots like Line and Column

Add a new system variable to @LCP to control the end of lines for Line+Symbol plot. 

  • 0: round (default value)
  • 1: square
  • 2: flat

Support number of table rows =10
Now the maximum of table row rises from 5 to 10. And Grouped Box/Column plots also support number of table rows to 10.

Graph: Fix Scale Factors dialog improvements

Set fixed scale factor for all layers so that font, axis, plots and objects will not be resized when layer is resized.

When clicking OK, current size and thickness of all elements are adjusted to maintain current look.

Show smart hint for PD resize as well.

Pick Points Improvements

Improve Pick Points to display and output column-based range string. If range is too long for the dialog to display, show it with a tooltip when mouse over range.

Make data source column range strings in output into links.

Size index column should automatically indicate in bubble scale
A new system variable is added: @BNLP .It controls the auto-nested layout percent of bubble size. The default value is 20, which means when the bubble scale is larger than 20% of the whole layer in size, its layout will be switched to Nested from Linear if you renew/add a bubble scale for a size-indexed scatter/line+symbol plot.

Auto Fill/Distribution Curve/Line Color

Add Auto option for Box, Column and Bar graph's pattern fill color. When Auto is on, Fill color is slightly lighter than Border color. A new system variable @PFACF is introduced with default value as 65. Auto Fill color will be lighter when number increases. 

Auto option for distribution curve in Box chart and Histogram also changed to follow the same logic. And a new system variable @PDACF is introduced with default value as 30. Auto distribution cuve color will be darker when number increases. 

Support subset for Scatter Plot
Subset is available for scatter plot in Origin 2019. When X is <autoX>, Spacing tab will show in Plot Detail dialog with Enable Subset Option, with option By Size and By Column. The new plot type Grouped Scatter-Indexed Data is base on this feature.


User Parameter Row Formula

Worksheet Conditional Formatting: Highlight

Select a range of cells or column(s) and color cells that match rules.

Worksheet Conditional Formatting: Duplicates

Select a range of cells or column(s) and color cells with duplicate values.

Worksheet Conditional Formatting: Heatmap

Conditional Format Manager
Choose Worksheet: Conditional Formatting to manage and edit ranges with conditional format.

Auto fill column label row contents to the right

Double clicking the bottom-right corner of the cell with formula in Column label rows. The formula will be autofilled to all cells to the right.

Column List View

Choose View: Column List View menu to view a list of columns with associated metadata and sparklines. Data cells are not displayed. You can select column(s) in this list view and perform the usual graphing and analysis operations.

Copy non-continuous rows
Before Origin 2019, when selecting non-continuous rows and copying and pasting, the unselected rows in between were copied/pasted as well.

Improve Mask cells by condition to support noncontinuous columns and row ranges
Highlight noncontinuous columns or row ranges, select menu Column: Mask Cells by Condition to open colmask dialog, masks cells by your condition.

Support Hex numbers
  • Custom numeric display such that hex numbers can be used in worksheet cells/columns natively, without using Hex2Dec kind of conversion like in Excel. In Column Properties, set Display as Custom and then set Custom Display as %X or %0<#hexdigits>I64X e.g., %012I64X means 12 hexdigits. X can be in lower case.

HexDisplay.opju  demonstrates the power of using Custom Display Format of Numeric, as well as the various improvements

Custom numeric format more works
  1. Improvement for Latitude Longitude display format.
    General syntax is now like this:
    D[Space][M[S]][F/D][n] [EW/NS[B]]

    F/D: F to indicate not to include symbols and space is always inserted. D to indicate only exclude last symbol.
    EW/NS: EW for longitude, NS for latitude
    B: before the numbers. if not specified, will be after.

    Example: For decimal degree of latitude -3.03423

    DMD3 NS -> 3° 02.053 S
    DMS1 NSB -> S 3°02'03.2"

  2. Support direct editing in custom numeric format using Hex.

Numeric allow percent (%) and engineering notation
  • Type 12% will convert it into 0.12 automatically. You can disable it by system variable: @cap=0
  • Convert Percent (%) to Number when Copying or Importing ASCII or Excel Data with %
  • Type "1k" in a cell, then convert column to Numeric format will change it to 1000 automatically.

Copy and Paste Filter condition support
User can select the Copy Filter from filter's context menu or select a filter condition in Filter cell and Ctrl+C to copy a filter, and then paste it to other column(s).

Press and scroll mouse wheel to view data

Split worksheet improvements
In Split Worksheet tool, add a new option "Retain 1st N Columns" for "By Number of Columns"/"By Column Label" split mode to keep the 1st N columns in the splitting worksheet result.

Treat missing as blank Improvements
  • Missing values will show as blank in worksheet.
  • When importing excel file with empty cells, or copy and paste data with empty cells from Excel, 
  • Before Origin 2019, when copying some data with blank rows above it and pasting it to new column, blank rows were removed. In Origin 2019, they are kept.
  • If there are empty cells above the data, below data or within data range, click on it, status bar shows <i1:, >i2:, or nothing correspondingly. These empty cells will not be included in calcuation, statistics. 
  • When selecting a cell outside the data bound, status bar will show "<i1: "(begin) or ">i2: "(end).
  • Worksheet cell background color show differently if outside i1 i2 by default. There is a checkbox Indicate unused cells with a shaded background in Workbook Properties dialog. System variable @COR determines the darkening intensity.
  • i1 starts from 1st row unless set otherwise.
  • Delete data on last row will shrink data size (i2 updates)
  • Ctrl+delete to add missing value to a cell, in cases that user wants to make sure each column has same length. 

Masked status kept when copying and pasting data.

After pasting data into new sheet, masked data will be still masked. In the past, masked status was not kept.

A new system variable @CPM has been added to control the behavior, default value is 1.

1. Paste Transpose, Paste Link, Paste Link Transpose will not paste mask status.

2. Copy (full precision) will not copy the mask status.

Create Subset Sheet context menu to extract selected rows to a new sheet.

After manually select multiple rows or select multiple rows based on data highlighting feature, right click the selected rows and choose Create Subset Sheet context menu

Corresponding X-Function: wcopy.

Add "1 000.0" as numeric separators in Tools: Options dialog.
In Tools: Options dialog, a newly entry "1 000.0" is added for Numeric Separators.

New XFunctions to join columns by plot designation
A new X-Function coljoinbydesig is added to concatenates columns by plot designation. Right now, it's only available by script access.


Block Recalculation

Hide Recalculation Locks on the graph

For analysis done on each plot, a lock is created under layer icon. If there are many locks, it's hard for user to view the graph.

Choose View: Show: Lock menu to uncheck it to hide locks in graph window.

Labtalk page property page.lock=0 to hide it.

Set default node's shrink/expanding status on hierarchical result sheet for each analysis

User can right click any node on result sheet and choose Save Node Configuration to save default node status of the analysis. Next time when you do such analysis, it will used the saved configuration. 

  • Useful feature for you if you want to print/export consistent reports from analysis
  • Each analysis tool can have its own default node configuration.

Better Batch Processing with Mulltiple files in Analysis Template

If user has multiple data files imported into multiple sheets but also have other reference sheet, etc., Origin 2019 can better detect import data worksheet and only import to them when doing batch processing. 

E.g. user import 3 files into 1st 3 sheets. 4th sheet is a reference sheet, some analysis is done and analysis template is saved.

When using such workbook as analysis template for batch processing 6 files, first 3 will be processed together; second 3 files will be processed together. 

Labtalk command nlbegin support to pick up error bar when fitting from graph
Active a plot with error bar then run the following labtalk script:
nlbegin func:=gauss; nlfit; nlend 1;

Support to define both 32bit and 64bit External DLLs in a fdf file
Different dll files will be loaded by the same function if it's name follows the below rules:
32bit: DLLname.dll
64bit: DLLname_64.dll

Support threshold as a certain value in peak finding

Support Peak Filtering method in PA


Use new Window View for preview on more analysis tools

Below analysis tool support:

  1.  XYZ (Log) Gridding
  2.  IIR Filter

 Matrix/Surface Fit

Add Excel Bicubic interpolation
  1. Rename the current Bicubic method in 2D Interpolate/Extrapolate tool to be "Bicubic Convolution".
  2. Add option "Bicubic Lagrange" (enum as "lagrange") as the last one in Method combo.

Output Adj. R-square and Pearson's r of a scatter matrix plot to a result sheet.
Origin 2019 added "ScatterMatrixStats" worksheet to arrange Adj. R-square values and Pearson's r values of scatter matrix plot.

Set column as categorical for analysis tools related to grouping
If a column is mostly text and the column is used as grouping column for analysis tools, Origin will automatically set it as categorical so you can easily adjust result sheet orders.

Output Adj. R-square and Pearson's r of a scatter matrix plot to a result sheet
When Pearson's r or Adj. R-square is checked in Plot Scatter Matrix dialog, a new result sheet named ScatterMatrixStats will be created, with all Adj. R-square values and Pearson's r values in it.

Import and Export

Dialog Theme context menu Improvements for Import tools

Support Date Time Data with higher precision

Add three system variables:

1. @DSP: a project property, the date system in current project

  • 0: the current date system, +12 hours off from julian day system
  • 1: julian day
  • 2018: 2018 date system, 0 at 00:00 on Jan 1 2018

2. @DSO: the actual offset for the current date system, in day

And also, when the date system is 2018, Import Wizard support more higher precise date data, for example: When import time data like "2/5/2040 15:59:59.994983" using Import Wizard, can set Custom Date Format as "MM'/'dd'/'yyyy HH':'mm':'ss'.'######" to import.

Check new LibXL update
Updated the new LibXL version 3.7.1 to Origin, so that Origin 2019 will support importing more higher version Excel files.

Import Wizard Support relative OC File Path for user defined type
Import Wizard Support relative OC File Path "<App Folder>" for user defined type.

Add system variable so that import with "Replace Existing Data" will really replace existing data

Added a system variable @IRE for import Excel file with "Replace Existing Data" Import Mode.

@IRE = 1(default): Replace the existing sheets in the active Workbook from the active sheet on.

@IRE = 0: Only replace the active sheet, and create new sheets to import following Excel sheets.

Data Connector for SQL
Added a system variable @sqli= to determine whether the menu and the tooltip on the DB icon in the top left of a worksheet are enabled. By default it is 0.

Support import HEKA newest instrument model version 1000
Support importing newer HEKA file, up to version 2x90.3.

FAMOS import gets error about header not readable
Support importing newer FAMOS files that have the keys "NL" and "NV".

Improve TDMS Import to make it work with Batch Processing
Improve Batch Processing to support TDMS files.

Ctrl+G hotkey to open Export Graph with previous settings
Hotkey CTRL+G opens Graph Export dialog with <last used> theme. It used to open with system default theme. 

Add Zooming to expGraph Image Pane
Add zooming to image panel of expGraph that allows for zooming when raster is exported file type.


Support latest R 3.5.0

Provides LabTalk functions for Linear Fit

More LabTalk/SCV Functions Support

More LabTalk/SCV functions are supported (or improved) e.g.,

  • Integer-handling functions: Ceil(x), Floor(x), GCD(x1, x2,...),
  • Convert(xa,xb)
  • Engineering functions: Base(), Decimal(), BitLShift(), BitRShift()
  • Math functions: Combina(number, number_chosen), Permut(number, number_chosen), Permutationa(number, number-chosen)
  • Complex functions: Imcosh(c), Imcot(c), Imcsc(c), Imcsch(c), Imsec(c), Imsech(c), Imsinh(c), Imtan(c)
  • Financial functions: pDuration(rate, pv, fv), RRI(nper, pv, fv), Effect(nominal_rate, npery), Nominal(effect_rate, npery)
  • Statistical functions: Maxifs(max_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...), Minifs(min_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)
  • Miscellaneous condition and switch functions:

    • IfNA(value, value_if_na), xor(logical1, [logical2],…)

    • if(con,val_true[,val_false]), if(con,val_true$[,val_false$])$
    • ifs(con1, d1[,con2, d2,]...[,con40,d40]), ifs(con1, str1$[,con2, str2$,]...[,con40, str40$])$
    • switch(expression, val1, res1[,val2,res2]...[,val39,res39][,default]), switch(expression, val1$, res1$[,val2$,res2$]...[,val39$,res39$][,default$])$
  • TextJoin(StringArray|String delimiter$, bool empty, StringArray text|String text1$,...)$
  • IsFormula(string ref$)

Improve Cell() function to get actual cell display string
Example: Enter 0.5 in the first cell of col(A), format as Time format. Now it shows "12:00". Execute "cell(1,1)$ =;" will return "12:00", while it returns "0.5" in previous versions.

command to create OPX file

InitFromIni method is added to OPXFile class to support using OriginC function to create app, so that user can easily creating opx without opening package manager dialog. this will be useful if user execute origin from command line or a windows BAT files.

note: this method require a source ini file which including all settings in package manager dialog.


#include <Origin.h>
#include <../OriginLab/OPXFile.h>
int test_ini_to_opx()
	OPXFile opx;
	int err = opx.InitFromIni("opx_IEVer.ini");
	if( err == 0 )
		if( !opx.Save() )
			printf("Failed saving.\n");
		printf("InitFromIni error %d\n", err);
	return 0;

HTML Mode for Notes Window

Support HTML mode for Note window:

1 . Labtalk is added to provide access to the active note page:

  • note.text$: get/set the text of active note
  • note.readonly = 0/1: switch readonly mode, default=0
  • note.syntax = 0/1: default=0, plain text, 1 means HTML syntax colored.
  • note.view = 0/1: default = 0, text editor, 1 means render with HTML browser

2 . Embed Various Origin objects into Note page's HTMLIntroduce a new mechanism for user to insert Origin Graph, Cell, Table(from report sheet) and Matrix image inside note window's HTML mode. the syntax will be like this: 

<ANY_HTML_TAG data-OLink="OriginLink">

 For example, to insert a graph preview to a note window, you should use graph type. e.g.

<div data-OLink="graph://graph1"></div>

See following table for the type of responding Origin objects:

3 . HTML Export As Web Page: Added a new menu on Note window's title bar, label as Save as Webpage..., this menu will only be enabled when the Note is currently in HTML mode.

Add GraphLayer::InsertPlot(int nIndex) method

Added an OC function to reorder the plots in Graphlayer.

int GraphLayer::ReorderPlots(const vector<uint>& vnIndices, int c1 = 0, BOOL bUndo = FALSE);

  • vnIndices: Specify the new order of the plots.
  • c1: The indice of the starting plot.
  • bUndo: Specify if support undo.

Big Integer and the Bit Operations Support

LabTalk now supports big integers which are higher than 32bit values (up to 52 bits), and their bitwise operations:
Conversion to an integer: int(), nint(), ceil(), floor()
Bitwise operators: (&(AND) and |(OR))
Bitwise functions: BitAnd(), BitOr(), BitXor(), BitLShift(), BitRShift()
  for example:
    Dec2hex(bitAnd(i,j),12)$=;     //==>0F0000000001
    Dec2hex(bitOr(i,j),12)$=;       //==>0F3111111111
    Dec2hex(bitXor(i,j),12)$=;      //==>003111111110
    Dec2hex(bitLShift(i,3),12)$=; //==>788808080808
    Dec2hex(bitRShift(i,3),12)$=; //==>01E220202020

OC and LT access to Dataset Storage

Support LT and OC ways to the size of Dataset Storage, for example: Add a Dataset Storage and then run following code to get size:

LTlist -st;

OC: GetBinaryStorage(NULL, NULL, &nSize);

Improve JSON::FromString() & JSON::ToString()

For JSON::FromString(): support converting Javascript array to arbitrary Origin C vector types, for example:

string strvs = "[\"hello1\",\"hello2\",\"hello3\"]";

vector<string> vs;

JSON.FromString(vs, strvs);

For JSON::ToString(): support convert Origin C vector to Javascript array, lfor example:

vector<string> vs = {"Chris", "Zheng", "Aviel", "Hideo", "Yiming"};

string str;

JSON.ToString(vs, str);

Build OriginExt for more Python Versions
Build a new OriginExt for Python 3.6 version.

Support inserting a link to a matrix book or sheet


  • matrix://MBookName: Insert a link to a matrix book, given by MBookName, so the matrix book will be displayed in the current worksheet cell. 
  • matrix://[MBookName]MSheetName: Insert a link to a matrix sheet, given by MSheetName, so the matrix sheet will be displayed in the current worksheet cell. 

(Note: Insert a link to a matrix object syntax is matrix://[MBookName]MSheetName!MatrixObjectName, which is already supported before Origin 2019.)

New worksheet switch to select column label row in worksheet


worksheet -sl c1 r1 c2 r2

Need export a function to convert the date value from/to system time

Added two functions to convert the date value from/to system time for inner python: Date2datetime() and Datetime2Date()

For example:

import PyOrigin
dateT = PyOrigin.Date2datetime(2458310.5811)
date = PyOrigin.datetime2Date(dateT)

OC font file path

Added a new OC function to get font file path:

int okutil_get_font_file_names(StringArray *psaResults, LPCSTR lpcszFontName);

psaResults: Return all the font file name.

lpcszFontName: Specify the font name,

OC functions wanted for Batch Plotting

Added two new OC functions for batch plotting:

int GraphPage::GetDuplicateWithData(StringArray &saItems, const DuplicateWithDataInfo& info);
int GraphPage::AddDuplicateWithData(StringArray &saItems, const DuplicateWithDataInfo& info);

OriginC OC JSON add Tree support

Improved OC function JSON::FromString to support converting JSON string to oc tree, and added a following OC function to get tree vector:

BOOL TreeToVector(TreeNode& tree, vectorbase& vv, LPCSTR lpcszTagName = NULL)

COM interface to allow full search ability for Origin Project Files

In Find in Project dialog:

  1. The keyword to search is highlighted in the found item.
  2. Show Comments on the pop up preview dialog.
  3. Show Graph preview for the graph item.

COM Interface:

  1. Added new Origin.Application COM class OriginFinder, more information see http://wikis/ocwiki/index.php?title=Category%3AOriginFinder_(OriginCOM).

OC issues related to getting data from the internet

1. New following OC function to read text file:

BOOL ocu_read_text_file(LPCSTR lpcszFilename, string* pstr);

= [input] full path file name
= [output] resulting file content as a string
    FALSE if file not found

2. Improved OC function Column::SetFormat to support setting column custom format, for example:

void setcolumnformat_ex()
    Worksheet wks = Project.ActiveLayer();
    Column col1(wks, 0);
    col1.SetFormat(OKCOLTYPE_DATE, "yyyy'-'MM'-'dd");
    Column col2(wks, 1);
    col2.SetFormat(OKCOLTYPE_TEXT_NUMERIC, "DMS2");
    Column col3(wks, 2);
    col3.SetFormat(OKCOLTYPE_TIME, "hh mm ss'.'##");

New OC funtion to get list of installed fonts

Added following  OC function to get the name list of installed fonts:

int GetFontNames(vector<string>* pstrNames, BOOL bIncludeDefFont = TRUE);
pstrNames[output]:font name list.
bIncludeDefFont[input]:whether include origin default font.
Count of font names

http_get_str Fails to Return Response Body as String w/ Certain URL

Added following OC functions:

int okutil_http_download(LPCSTR lpcszURL, LPCSTR lpcszFileName, int nConnectTimeout = 0, int nResponseTimeout = 0, BOOL bIgnoreCertError = FALSE);

int okutil_http_get(LPCSTR lpcszURL, string *pstrResult, int nConnectTimeout = 0, int nResponseTimeout = 30);

int okutil_http_post(LPCSTR lpcszURL, LPCSTR lpcszRequestData, string *pstrResult, int nConnectTimeout = 0, int nResponseTimeout = 30);

DWORD okutil_http_error();

DWORD okutil_http_status();

More information see http://wikis/ocwiki/index.php?title=Category%3ANetwork_(global_function)

New OC method to scale the font size and line thickness when page size changes

Improve LT command "page -AFU -newWidth/oldWidth;" to support scale the font size and line thickness when change page size by oc way.

For example:

void SetPageSize()
	GraphPage gp = Project.ActiveLayer().GetPage();
	Tree tr;
	tr = gp.GetFormat(FPB_ALL, FOB_ALL, true, true);
	double dOldWidth = tr.Root.Dimension.Width.dVal;
	tr.Root.Dimension.Width.dVal = 5;
	tr.Root.Dimension.Height.dVal = 5;
	if(0 == gp.UpdateThemeIDs(tr.Root))
		gp.ApplyFormat(tr, true, true);
	string strScript;
	strScript = "page -AFU -" + 5 + "/" + dOldWidth;
	strScript = "menu -e 33027;";

Build OriginExt for more Python Versions
Improve OriginExt packager to support calling Origin COM for python 3.6.

HTML Table support internal and from OC

Support getting HTML table by OC way, for example:

void	html_test()
	OHTML doc;
	BOOL bRet = doc.ReadFile("c:\\temp\\html\\test.html");
	if( bRet )
		StringArray headers, data;
		int nTables = doc.GetTableCount();
		for(int table=0; table<nTables; table++)
			string strCaption;
			bRet = doc.GetTableCaption(table, strCaption);
			int nRows = doc.GetRowCount(table);
			int nCols = doc.GetColCount(table);
			for(int col=0; col<nCols; col++)
				bRet = doc.GetColHeader(table, col, headers);
				bRet = doc.GetColData(table, col, data);

Code Builder should be able to inspect the values declared inside the loop

Support to detect the variables inside the loop and list them in the variables list when debug in Code Builder.

For example: debug the following LT script in Code Builder.

doc -e LB 
  double x = 1.5;
  Col(2) = Col(1) * x;

It will show x variable in Variables window.

Tree-like datatip in Code Builder to show variable structure for debugging
When debugging OC code in Code Builder,and move the mouse over a variable name, a simple tooltip pops up to show the value of it.

Color Picker XF needed

 Add new XF, name = colors

OC added as

bool ColorsBox(COLORREF* pcr);

LT command as

ed -c [color]

LabTalk function needed to convert ocolor to RGB,

int ocolor2rgb(int ocolor);

More work on @MRU
System variable MRU support enable user template (MRU=8) and recent file (MRU=16)

GetN GETN_OPTION_NUM_FORMAT to support Custom Numeric Format

Added GETN_OPTION_NUM_FORMAT function to custom Numeric format, for example:

#include <GetNbox.h>
void test()
    GETN_TREE( treeTest )
    GETN_STR(test1, "Str Value", "junk")
    double xx = 0.5*PI;
    GETN_NUM(testVal, "PI Test", xx)
    GETN_OPTION_NUM_FORMAT( "* \"pi\"" )
    if( GetNBox( treeTest ))
        out_tree( treeTest );

Installation and Licensing

Customize Installation and File Path

Config.ini under setup.exe folder to

  1. prefill settings in installation. This is useful for group users. Manager can set Serial number, Installation Path, install 32 bit or 64 bit, etc. in config.ini file. Subsequent users just run setup.exe to do a silent installation. Together with PK.txt under setup folder, IT can auto install and license Origin.
  2. preset license information, e.g. flexnet server name and port number.
  3. preset User Files folder, Apps folder, AutoSave, backup, etc. folders so no dialog opens on first launch of Origin. 

"About Origin" dialog improvements
  1. Added the "Check Available Licenses" button to get license information for Individual License.
  2. Added the "Citation Text" button to dump a string for citation to messages log.


GUI changes in miscellaneous tab of tools options dialog
  1. Add Proxy Setting control.
  2. Move Bisection Search Points to Graph tab.
  3. Move Footnote Size Ratio to Text Fonts tab, and rename it to Footnote Size Ratio in Analysis Reports

Backup, Autosave, Unsaved from User Files Dialog
  1. If user has already customized their paths (customization can be via registry per Tools Options, or can be via config.ini), then DO NOT show any choices. Just use the customized locations
  2. Otherwise show the following radio choices:
  • Same level as UFF
  • Under User Files Folder (UFF)
  • Under "%s" // (show actual default root path)

Shortcut window improvements
  1. Shortcut window keep own state (position, size) if adjust the source window

Menu toolbar locking

Origin 2018b Features

Origin Interface

Active Window is indicated by a frame around the window. Color and line style can be customized.

When there are many child windows, it's hard to tell which window is active.

A magenta frame is added around active window title bar 

System Variables:
@AWI = 0; // No Indicator
@AWI = 1; // default, solid line, outside window frame

@AWI=2;; // title bar frame
@AWI=3; // title bar top line

and add 4 to use thin line 
and add 8 to use dashed line

For example:
@AWI=9; // thick dashed line, window frame

@AWC is for indicator color as an RGB integer.

For example:


How to control which window display in File Explorer thumbnail and Preview

System Variables:

@SPM=1, PriorityMatrix

@SPM=2, PriorityWorksheet

@SPM=3, PriorityHolderImage

@SPM=4, PriorityMatImage

@SPM=5, PriorityHolderGraph

@SPM=6, PriorityGraphNotOpen

@SPM=7, PriorityGraph

where "Holder" refers to a Graph or Matrix added to a Workbook as a Sheet, and if a Matrix, View must be Image Mode (View: Image Mode).

The variable determines if a given window type will be elevated to "Must Use if Active".

The value of @SPM is stored in the Windows registry and will persist across Origin sessions until it is again changed.

Extra large icon view for workbooks and matrices in Project Explorer and Windows File Explorer
  • Extra large icon view and Preview of workbook in Windows Explorer.
  • In Project Explorer, Extra large icon view and tooltip.

Hide preview of OPJU with password protection
If user uses Tools: Password Protection to set password and then save the OPJU, preview of the OPJU will be hidden in Windows Explorer.

Show both Long Name and Short Name in List and Icon Views in Project Explorer

In the past, if there was long name in window, only long name showed in List or Icon views of Project Explorer. In Origin 2018b, you can check Show Long and Short Names to both names. 

Support more numeric format like Excel
  • #5
  • Percent: #%, #.00%


  • Proper fraction # ##/##, # #/8, # #/4, # #/10, etc. and Improper fraction #/#, #/4, #/10, #/100. ##/##, etc.


  • Degrees, minutes, seconds (DMS), D MS, DM, DMF


Add Matrix as a Sheet in Workbook, Allows for Analysis Templates to include image or matrix data in a single book.

To support an analysis template which contains both workbook and matrix, everything must be in one workbook.

So in Origin 2018b, we allow user to right click a workbook tab and choose Add Matrix as Sheet context menu. 

This actually adds the whole matrix book as a sheet in workbook. You can double click the matrix to open the matrix again.

Plot menu icon size can be scaled by a factor from 0.5 to 2
Use system variable @pps to set scale from 0.5 to 2, zoom in or out the Plot menu icon size


Labels, Legend, Color Scale and Bubble Scale, Graph object

Scale factor for fill pattern entries in legend. Applies only to Geology patterns.

For example, code

 \L(1, PatternScale:p200) 

means set both X scale and Y scale of pattern to 2. 

More flexible color scale object, including arbitrary color scale
  • show color scale for 2d plots colors.
  • show an independent color scale.

System variable to control double-click legend behavior
@LDC=1 -- Double clicking legend opens Properties dialog
@LDC=0 (default) - Double clicking legend goes into in-place edit mode (old behavior in versions before Origin 2018)

More controls added to Bubble Scale
Add Bubble Edge Thickness in Layout tab.

Pie Chart label supports Apply to layer etc
For labels with object name begin with PIE, all the properties except position, text content and programming will support apply to layer/window/folder/project/plot/grouped plot.

Support for label to be attached to data or error bar
We add an option "Error Bar" to "Attach to" combo in Label tab. For Y error bar, it will take effect when position is Above or Below.
For X error bar, it will take effect when position is Left or Right.

No limit for characters of tick labels

Improve arrow object control

Introduce system variable @LCAS, with default value=1. It is used to toggle between sharp arrow and round-head arrow.

0 = round-head arrow, old behavior
1 = sharp-head arrow

Hotkey Ctrl+Shift+Drag to duplicate the annotation object to another data point and add visual feedback when moving annotation

Plot Manipulation

Support Tagging Sheet as Exclude from Plotting Dialog

Some users have a lot of worksheets in project. And it's hard to select which sheet to plot.

In Origin 2018b, User can exclude some worksheets from showing in Plot Setup and Layer Contents dialogs by right clicking worksheet(s) and tag as "Exclude from Plotting Dialogs". 

Easier way to show/hide error bars and data labels from Object Manager

Rename Plot Groups instead of just using g1, g2, ... in Object Manager

Right click g1, g2, ... node in Object Manager to give a meaningful group name. 

Such group name will show in

  • Layer Contents dialog as tooltip
  • Data menu
  • Context menu when right clicking on graph

Support for grouping and ungrouping of data plots in Object Manager

In Object Manager,

  • Right click group node, e.g. g1 to Ungroup.
  • Right click a plot that doesn't belong to any group and Set as Group Begin. Then Origin will find all consecutive plots below it that have same plot type and group them.

Support line style customization for vector graph
Support Line Style option for vectors in polar graph. You can customize the line style through Plot Detail or button.

Option to ignore blank data when deciding column bar plot spacing
Add a checkbox Ignore Missing Data for Column/Bar Width in Graph level's Display tab, so column/bar plot's spacing width will ignore missing value once it's checked.

Allow displaying reference lines on top of data
  1. Add check box in Display tab of PD at Layer level: "Reference Lines on Top of Data"
  2. Add right-click context menu entry to Axis: "Reference Lines on Top of Data"

Support for Stacked Column and 100% Stacked Column plot types in Trellis Plot
Add Stacked Column, Stacked Bar,100% Stacked Column, 100% Stacked Bar to Trellis plot xf dialog Plot Type drop-down list.

Auto option added Colormap rescale modes
Auto is added to list of Rescale modes in colormap tab of Plot Details.

Support Box Chart in Trellis Plot to provide easier way for controlling box charts arrangements from grouped data.
  • Support Box Chart with Panel
  • Enable By Point tab for box chart color and pattern
  • Add Box Chart to Plot Type combo of plot_group

Improve Handling of Date/Non-Categorical Grouping Data in Indexed Group Box Plot
Better support Date/Non-Categorical Grouping Data in Indexed Group Box Plot

Graph Page and Layer

Fit all layers to maximum available page area, including option for margins.

Margin control to fit all layers in graph into page area nicely.

User stories:

  • There are too much white space outside the layer. User wants to make the margin tigher.
  • Some text, axis title, or layer shows in gray area, so they will not be printed/exported. Use this tool to fit them into page siie.

Better legend position when Fitting Layers to Page

Add the option -L to the page -FLS command

page -FLS -L; //fit layers to page so as to leave room on the right side for the legend. No gap between layer and legend.
page -FLS -L 0.03 -m 0.04 //fit layers to page, with space (3% of page) btween layer and legend, margin on edge of page is 0.04.
To use the -L option, the following must be true:
  • Graph contains a single layer.
  • There is one (and only one) legend object.
  • Scale Elements (Format: Layer Properties > Display tab) must be Fixed Factor.