Release Notes

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

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.

Keep Aspect Ratio check box at Page level, to resize page

This allows user to specify desired page width for publishing, and Origin can then scale the height accordingly to keep the aspect ratio, if this check box is checked.

All elements in the graph will be scaled such that they "appear" the same in the final graph in terms of relative dimensions such as font size etc. MAY NOT work fully yet for elements such as color scale, and for 3D graphs.

New LT command to force all layers to have scale factor fixed but keep the look

Select menu Graph: Fix Scale open dialog, and you will allow to set all layers to fixed scale factor value and maintain current look.

LabTalk command is also available,

Customize Layer/Plot/Axes properties across all ayers

By checking what you want to customize together on Layers tab of Page level of Plot Details dialog, and then go to a layer to customize settings, all layers will be customized together.

Easier notation for adding labels when merging multiple graphs, including support for Roman numerals

Set Label Text as Custom and click the dropdown list to see Custom notations.

Notations can be combined, e.g. h$n$ to show #1, #2, ....

a$ (default) – enumerate lower case letters
A$ – enumerateupper case letters
r$ – enumerate lower case roman numerals 
R$ – enumerate upper case roman numerals 
n$ or # – enumerate numbers
h$ – represent #

Graph## – Graph01, Graph02, ...

hsn$ means #1, #2, ....

Labtalk Script example:

merge_graph labeltext:=custom labelcustom:=h$n$;

Tip: Click the > button next to Dialog theme and choose Generate Script, executable Labtalk script will be created.

Enlarged graph using scale-in tool supports multiple overlapped layers

If layers are linked with 1:1 X axis and area, choose Scale In toolbar button and click in graph to create enlarged graph. Plots in all linked layers show in enlarged graph.


Integrate Gadget now supports marking of Fill Area under multiple curves

Improve the assignment of columns to layers for multi-panel plots

When number of x cols <= number of layers, use x col as separator to plot into layers; When number of x cols > number of layers, pop up error message: When number of x cols > number of layers, pop up error message. Add X Column" to the "Group By" combo in Multiple Panels by Label tool dialog.

For example, if data is organized as XYYYXYY and user asks for a 2-panel plot, the first three Y columns will be plotted in layer 1, and the last two Y colums will be plotted in layer2.

Page size change to keep same look

Automatically scale all elements similar to the work with fix scale factor.

System variable @PSM controls the minimum change to trigger size update.  Set @psm=100, elements will not resize when changing page size.

3D and Contour

Added Connect Control for 3D Waterfall.

Before Origin 2018b, 3d waterfall can only be plotted as straight lines. To have spline, etc., user had to plot as 2D Waterfall.

Support total label for 3d stacked column/bar plots

Support more 2D arrow shapes in 3D graphs

Support 2D annotation for 3D scatter plot.

3D XYZ bar graph supports customization of individual bars
Customize pattern, color and labels

Improve preview of 3D OpenGL graphs in dialogs
Better preview in our export graph dialog

Support <end> as end of column/row for size, when creating virtual matrices

Add a context menu "Dynamic Ends" to the Plotvm dilaog's Input node. When it is selected, virtual matrix's range will be expanded to both row&column ends.

Contour Profile/Image Profile Improvements
Add a Default settings button in Image/Contour Profile dialog. Clicking it will open Default Settings dialog. You can customize Legend Preferences(by Width or Value), Profile Quantity(will only show when source data is virtual matrix and matrix) and Output Profile Data( will only show when source data is virtual matrix)


Extend arrow at end of axis to show outside of the layer limit
User can set offset of axis arrow so the arrow head is longer than original axis.

Apply changes to axes immediately from secondary dialogs that pop up
1. If user clicks Details button to open secondary dialog, the main dialog will be hidden.
2. Changes on main dialog will not be applied to graph but still remembered.
3. On Secondary dialog, there is Apply button. Click it will apply changes on secondary dialog only.
4. Click OK will apply and close the secondary dialog and main dialog will open again.

Added Alignment/Positioning options for Axis Titles with respect to axis position
Add an new option Offset Relative to Axis: Middle, Begin, End  in Axis dialog Title tab.

Added Rescale Axis option to axis context menu

Depending on X, Y or Z axis you click, Corresponding Rescale Axis context menu will show

Rescale axes of linked overlapping layers

Rescale to show all only rescaled the axis range of current layer in the past. In Origin 2018b, it will take care of linked overlapping layers. Usually Multy-Y plots have such linked overlapping layers. E.g. on one layer, data range is from 2000 to 2005. On the other layer, the data range is from 2001 to 2006. 

Registry based System variable @RML (Rescale Multiple Layers) 

1 – rescale multiple layers

0 - rescale active layer only (old behavior)


Fitting: Standard error on derived parameters is now included in the parameter Summary table

Output the SE of derived parameter and in the Summary table.

Fitting: Accuracy of p-value has been improved in nonlinear fit results.

Calculate the P value more accurately for tcdf and fdcf significance levels in Nonlinear Fitting Tools.

Change code to calculate P value for tcdf and fcdf in fitting tools for significance

Fitting: Two new implicit fitting functions added for diode and solar cell data
The SolarCellIV and ModDiode fitting functions are added in the Implicit Category.

Fitting: Implicit Function now support Integral
Support to define Implicit Function with integral in the Fitting Function Organizer and Fitting Function Builder

Fitting: Sample Curve and Equation Preview images are included when transferring FDF files from older version.
Transfer User Files tool can now transfer also (if present) the picture files for the formula (.wmf) and the picture files for the sample curves (*.cuv) with fitting function file (*.fdf).

Peak Analysis:  New method for peak detection: Fourier Self Deconvolution

Statistics: PCA Loading plot and Biplot support improved plot labeling
Principal Component Analysis: Loading plot and BiPlot use the latest design: plot label tab in Plot  details dialog, and update Axis Labels "Principal Component 1" to be "PC1", add the value of "Percentage of Variance" to the Units label 

Statistics: Frequency Count/Binning tool supports output format such as: 0-10, 10-20, etc.

2D Frequency Count/Binning output sheet creates 4  type columns ahead with following LongName: Bins of A, Bin Beginnings of A, Bin Centers of A, Bin Ends of A and create 3 label row : Bin Beginnings of B, Bin Centers of B, Bin Ends of B.

Frequency Counts output sheet creates 4  type columns ahead with following LongName: Bins, Bin Begin, Bin Centers , Bin Ends.

Statistics: Hidden column will be ignored when computing statistics on rows
Hidden column should be ignored if do statistics on rows and other statistics tools

Statistics: Stats on columns and rows will carry over Units from the source datasets
Statistics on columns/Statistics on Rows, the result value will carry the same Unit as the source datasets.

Signal Processing: Unit description added to metadata of STFT result
Support unit output in worksheet result of STFT.

Better hint indication when run Pro-only features in Regular version

1. In Regular Origin, if the project contains pro-only operation, the analysis clock will show in gray color.

2. In Regular Origin, if the project contains pro-only operation and users click the recalculate toolbar button, there is a warning message shown in Message Log window.

Worksheet and Data Processing

Support for custom formatting of User Parameter rows in Worksheet
From Origin 2018b, user is allowed to set data format for a Parameter row or a User-Defined parameter row. This option is provided in Worksheet Properties dialog.

Copy and paste entire worksheet across multiple Origin sessions.

Right-click on the sheet tab, two new context menu items are available.

  • Copy Sheet
  • Paste as New Sheet

Use Copy Sheet to copy current sheet with all information(including the header lines and structure) into the clipboard, and then use Paste as New Sheet to paste it as a new sheet from the clipboard into a new layer or new window.

LabTalk command is also provided,

clip -cs; /// copy active sheet
clip -ps; /// paste sheet to active book from clipboard, if possible
clip -psn; /// paste sheet to new book from clipboard, if possible

Support more options when Copy Columns to

Copy Columns to is a useful way to copy columns from one sheet to other sheets and keep the linking. But some settings in source columns are not copied. Added in Origin 2018b.

Stack Columns tool will maintain column plot designation for Other columns
Keep column plot designation for other columns in the Stack Columns result.

Stack Columns tool check numeric for group identifier label row
In Stack Columns, choose a label row as Group Identifier, then Origin will check if all value is numeric and not set it as categorical in the result.

Support Excel column notation in condition string for Counif() function
For Averageif(), Countif(), and Sumif() function, you can use Excel column name in condition string argument now. E.g,
countif(a, "A>0") //Before Origin 2018b, must use countif(a, "col(A)>0")

Also, the performance of these functons is improved.


CSV Import: Added option for starting new rows when importing multiple files
Added a new Import Mode option:Start New Rows option for import CSV tool

MDF Import: Significant improvement to speed of MDF Import
Tested with very large MDF file provided by user. It used to take more than 1 hour to import the data. In Origin 2018b, it takes only about 1 minute.

ASCII Import:

Origin's auto determine header line may not work well for all user's data.

One example is user wants to import files by removing all lines that start with # character.

In sush case, uncheck Auto Determine Subheader lines and then choose By Leading Character option and specify a leading char under Header Lines node in ImpASCII dialog. This option is also available on Header page of Import Wizard.

Import data with Start New Columns mode will not overwrite empty columns with merged column labels

If user merges some column labels e.g. Comments and import mode is set as Start New Columns. Then Origin will treat the merged column as a unit and check if 1st column in the unit is blank or not. If blank, import into it. If not, start new column after the unit and import there. 

System vairable @DCM=1;//disable check merged labels. Then Origin will work the old way before 2018b. Import into empty columns in the unit.

Import data with Start New Columns mode will overwrite columns with missing values before creating additional columns

Columns with missing values are still treated as columns with data. In the past, when user tried to import multiple data into same sheet with Multi-File Import mode set to Start New Columns, data will be imported into new columns after missing values columns. In 2018b, data will be imported into those missing value columns.

Improvements to labels in ASCII import dialog

S1: Some label on ASCII dialog were changed:
1. Show blue hint "each character is treated as one delimiter" when the number of "Other Delimiters” is more than 1.
2. Multiple Delimiters --> Multiple Characters
3. Combine Delimiters as one Delimiter --> Treat Consecutive Delimiters as One (use a same label as ImpWiz)
4. Move "Header Lines" branch node above "File Structure" node, to be consistent with ImpWiz.

S2: Restrict editbox to allow single character input

On Import Wizard dialog, Data Columns page, the "Other" editbox is not allowed to enter more than 1 char.

Partial Column Import in impBRUKER dialog

Partial Import node is added in BRUKER OPUS import dialog to import part of columns.

impcsv always import data from specific columns range since Origin2018

Added a system variable @IAR for  impCSV and impMSExcel import tools, when Highlight a column to import CSV or Excel file:

@IAR=1(default): Import data from CSV or Excel file from the first column.

@IAR=0: Import data from CSV or Excel file into the highlighted column.

Support the import Excel theme created from old version

Support using import Excel themes from old versions in Origin 2018b, before using the old theme, need to run some scripts to convert it.

run.loadoc("originlab\theme_convert.cpp", 16);//Run this script to load the convert theme function.

and then:

  1. theme_file_convert_for("impExcel", "impMSExcel", "import_injekt_excel") //Convert single impExcel theme to impMSExcel theme.
  2. theme_file_convert_for("impExcel", "impMSExcel") ortheme_file_convert_impexcel_to_impmsexcel() //Convert all impExcel themes to impMSExcel themes.

Start New Sheet import mode should extend to allow more sheets
Maximum number of sheets in one book is 1024, so when Start New Columns to import more than 1024 files, will automatically create new book for importing later files if number of sheets in current Workbook arrives 1024.

Clone Import should trigger recalculation
Clone Import will trigger recalculation, even though the Recalculation is Manual.

More wav format wanted
  1. impWav supports importing 24bit .wav file.
  2. impWav supports importing multi-channel .wav file.

Exporting and Presentation

Option to export multiple graphs as a single multi-page PDF file
"Export as multi-page PDF file" checkbox is added in Export Graph dialog to export multiple graph windows together into one Multi-Page PDF file.

Export graphs with PE folder name included in the name of the exported file
We introduce a new keyword like <PE parent1> which refers to the immediate parent folder name.
We can for now support up to 3 levels, so we will support <PE parent2>&<PE parent3>, but show only <PE parent1>-<long name> on GUI for now.

New menu and improvements to quickly set up and apply Master Page elements such as logos and timestamps to all graphs.
New menu item to open and customize Master Page and apply to all graphs.

More options and script commands to customize application of Master Page elements

 1. Any object with name beginning with "NoExport" will be skipped as master items. Use @UPN=1 to disable it.

2. We can use labtalk command to apply active page's width and height to all other pages.

doc -pdad;

This command was made for the button on the master page.

3. Allow rotate from landscape to portrait. The following labtalk command is used.

page -o r

"Rotate" button is on the master page template.
4. "Save" button is on master template.

Little Dialog to control Margin Offsets

When choosing Edit: Export Margin Offset,

1. Show width and height of selected area with unit of page.
2. Enable the rectangle to be draggable and resizeable all of the time

Improve Copy Page for Embedded Graphs
 Embedded/floating graph can be copied as actual Graph, but not an EMF.

Export ASCII to support ignore empty columns

Add a checkbox named as "Ignore Ending Empty Columns", to control ascii export, to ignore empty columns from the end, with the following options:

0 = no ignore (current way, default)

1 = ignore all empty columns after the last column with data, meta data not considered, and column with all missing values are considered empty.

This is used only if export selection is not chosen.

Batch Processing

New App to distribute multiple files across multiple cores for faster Batch Processing
Select the Analyis Template and data files. Then specify how many cores to be used. The files will be distributed to multiple instances of Origin running on each core. App can be used to monitor progress. Once all tasks are finished, a consolidated summary report can be created with results from each core combined into one table.

Save Batch Processing dialog settings into Analysis Template

When using an Analysis template in Batch Process dialog, the batch processing dialog settings will be saved into the analysis template so that the next time this analysis template is loaded in Batch Process dialog, no need to set batch processing setting again. 

A system variable @bst is used to control the behavior.

0 : always no save settings;
1 (default): always save settings;
-1: pop up msg to ask.

Some rule changes to batch processing

We tend to have no dialogue, no interaction, in batch process. So the rule of batch process now becomes to:

  1. Before doing any batch process, user must make sure the input files format should be match with the last import settings in .ogw or filter in UFF.
  2. Last import setting must be used when check on "Use Import Setting in Workbook". filter file will be used when uncheck "Use Import Setting in Workbook".
  3. when filter is used, the proper filter should match: a. input file extension must be match with filters setting. b. filter file format must be match with last import settings in ogw.

Once user make analysis template with import ASCII, that means the template is only used for ASCII file. If user want to it for other type file, they must import another file from MENU and save analysis template again.

Support to add data from many sheets/books into a combined graph or an existing graph
  • Add data from many different sheets/books into an existing graph
    • E.g. After plotting a multiple panel graph with data in one worksheet/book, user wants to add data from other sheet/book to same graph. 
  • Add data from many sheets/books into a combined graph.
    • After plotting a complicated graph with data in one book with several sheets, user wants to create a similar new graph with all data in another book with different number of sheets

Batch Plot dialog now combines options for Book, Sheet and Column into one dialog

Batch Plotting GUI Improvements

  • Combine Batch Plot with Book, Sheet and Column into one dialog. There is Batch Plot with dropdown list on the top of the dialog.
  • Matching conditions to filter book/sheet are moved on top of the book/sheet list.
  • Batch plotting menus and toolbar buttons also combine into single button and menu.

Allow importing data directly into embeded matrix in worksheet when performing batch processing

If the embeded matrix exits in the analysis template, batch processing support importing data or image to the embeded matrix. Besides,  drag and drop to import data or image to opened analysis template is also supported.

Project and Data Management

Improve Project Backup Mechanism
  • Each Origin project will have its own backup file.
  • Set system variable @PBO=0 to go back to old behavior. Only one Backup.opj/opju under User Files folder for last saved project file.
  • Access Project Backup Folder via Help: Open Folder: menu in Origin or from Windows Start menu.
  • Change Backup folder location on System Paths tab of Tools: Options dialog.

Autosave is now available for Untitled.opj

In the past, you must have project saved once in Origin and then if it's dirty, every 12 minutes (by default), the project will be autosaved in case Origin crashes. But sometimes user started a new project and had never saved it. Then Origin didn't autosave it at all and if Origin crashed, there was no autosave. 

Note: If Origin is closed normally, no autosave will be kept since Origin always prompt user to save.

Option to default to old OPJ format for saving projects
A new system variable:
0 Project to use new format and Copy Paste also new format
1 Project to use old format but Copy Page to use new format
2 Project to use new format, but Copy page to use Old format
3 Both will use old format

Save files to or open files from Google Drive
Location of TempSave folder has been moved into a subfolder in ProgramData folder to avoid conflicts with Google Drive. Also, Origin better handles cases where user's Documents folder is located on a network drive.

Customer Report on OPJU issues
Customer‘s OPJU Crashing on load. 

Bottom panel of Project Explorer no longer lists folders

We are working on supporting moving windows in bottom panel to reorder them. If there are folders in subfolder, it's hard to reorder windows. So we hide folder in bottom panel.

  • Folder structure will only show in top panel. 
  • Set system variable @PEF=1 to show folder in bottom panel
  • When mousing over folder in top panel, tooltip will show about folder comments, size, etc. 

Optional better handling of worksheet with large number of sparklines that may slow down opening projects.

When a worksheet contains sparklines, prior to Origin 2018b, all sparklines had to be drawn on project loading even if they were not visible. This slowed down initial rendering of the worksheet significantly.

A new system variable in 2018b addresses this issue by specifying how Origin should save EMF images of the sparklines:

0 Save all sparkline images in the OPJU.
-1 Don't save any sparkline images in project.
7000 (Default) If individual sparkline is < 7000 bytes then save it in the project.

Note: This system variable is persistant- it will be remembered across Origin sessions. It should be set from the Script Window or Command Window and not in the System Variables dialog.

Optional faster rendering of graphs when many are shown at once and/or overlapped

When many graphs are shown and/or overlapped, complete rendering (painting) of all of them may take a considerable amount of time if the graphs contain a lot of data. Up until Origin 2018b, each graph had its own setting specifying that if 70% of the graph is covered it would not repaint. Now in Origin 2018b there is a system variable to change this behavior on a global basis.

0 (Default) Use existing setting in graph- same as old behavior.
1-100 Percentage that must be uncovered before repainting is triggered.
>100 (e.g.101) Only repaint the currently active graph. Do not attempt to repaint other graphs.

Note: This system variable is persistent- it will be remembered across Origin sessions. It should be set from the Script Window or Command Window and not in the System Variables dialog.

Improvements on Converting to Scientific Notation

Some improvements are made:

  • Suppose Upper Threshold to convert to scientific notation is 6. In the past, 1000000 displays as 1000000, while 2000000 displays as 2E6. In Origin 2018b, 2000000 will still display as 2000000. Only values equal or bigger than 1E7 will convert to scientific notation.
  • There was some round off error in the past. To see the problem: Suppose Lower Threshold Power to convert to scientific notation is -3. In the past if the axis is from 0.001 on 10, it will display as 0.001 fine. If axis is from 10 to 0.001 (axis decreases), 0.001 showed as 1E-3. Fixed in Origin 2018b now. Shows 0.001.


Support Plot Range for Dataset Identifier for Gadgets
Added option "Plot Range" in the Dataset Identifier drop down list in all gadgets which have the combo.

Cluster Gadget supports clearing category information


LabTalk:  New command to turn on audit log for all projects.

new LT command

doc -log1; //turns on for current project with empty password doc -log1 test;//turns on for current project with password = "test" doc -log0 test;//turns off for current project
doc.AuditLog=; //(ready-only )returns 1 or 0 AuditLog is on/off for the current project.

New system variable that is Registry based added
In Script Window, run
@ALOG=1;//turn on Audit log on New project (untitled)

You can also preset this in msi installer script to set registry
HKEY_CURRENT_USER\Software\OriginLab\Origin 9.5b\International\SysV\ALOG
with a DWORD value of 1 

LabTalk: Skip Columns when Plotting and after Plotting

-pc option is added in Worksheet and Set commonds.

//to make plot woksheet -pc plottype template startIndex Increment;
//to modify, %C will need to automatically find group head set %C -pc startIndex Increment
If Increment is a negative number e.g. -N, it means span and plot N plots.


Highlight all columns and run
1. worksheet -pc 200 line 2 3 //start from col B, every 3rd col is plotted so i got B, E, H, K, .... in graph.
2. worksheet -pc 200 line 2 -10 //start from column B, span the whole data and pick 10 columns to plot. I got B, O, AB, AO, BB, BO, CB, CO, DB, DO columns plotted.

First plot all data. With graph window active, run
1. set %c -pc 2 3; //start from column B, every 3rd col is plotted.
2. set %c -pc 2 -10; //start from column B, span the whole data and pick 10 columns to plot. I got B, O, AB, AO, BB, BO, CB, CO, DB, DO columns plotted.

LabTalk:  Script access to better support install and uninstall of Origin files that D&D can install

Add the nlsf_install_fdf and nlsf_uninstall_fdf OC functions to install and uninstall fitting functions.

LabTalk Access is supported:

run.section(dofile.ogs, OnInstallFDF, "%Yfitfunc\MyGauss.fdf")
run.section(dofile.ogs, OnUnInstallFDF, "%Yfitfunc\MyGauss.fdf")

Add the template_install and template_uninstall OC functions to install and uninstall graph templates.

LabTalk Access is supported:

run.section(dofile.ogs, OnInstallTemplate, "%YMyGraph.otpu")
run.section(dofile.ogs, OnUnInstallTemplate, "%YMyGraph.otpu")

LabTalk: LabTalk Hex related functions to handle bigger values
  • Improve hex2dec(), hex() functions to support 48 bits integer
  • Support "0x" prefix. E.g, hex2dec("0x10A") returns 266
  • Dec2hex() function support places argument. E.g, Dec2hex(10,3)$ returns "00A"

LabTalk: LabTalk function to converts text to a number


NumberValue(str$[, decimal$, group$])

OC: Better default for index in  GetParameterResults
The default value of second parameter of OC function GetParameterResults() was changed to 0.

OC: Access to get and set LabTalk LT properties of Origin Objects

S2: Support accessing page properties by OC functions:Pagebase::SetProp() and Pagebase::GetProp(), for example:

void test_Graph_Set_and_Get_Properties()
	GraphPage gp;
	double vv;
	gp.SetProp("active", 2);
	gp.GetProp("active", &vv);

LabTalk: Support for programming way to control Master Item display

S2: Programming way to view Master Items on Screen LT

page.master = 0, not export the Master item.
page.master = 1, export the Master item, but not view it on screen. page.master = 2, for screen, but ignore if bit 1 not set

However, if page.master = 1,  can use LT script "Menu -e 33096" to toggle viewing Master items on screen, but cannot control it.

LabTalk: New command to remove dividers

 Labtalk command to remove divider:

page -ADX -<opt> dividerindex;

Labtalk command to restore dividers:

page -ADGR;

X-Function: findFiles x-function now supports recursive folder
New variable "recursive" is provided, can set value to 1 to find the files in the recursive folders.

X-Function: More output options for mstats xf
1. add variable i1/i2 to XF quantiles for worksheet;
2. add variable x1/y1/x2/y2 to XF mquantiles for matrix.

Python: API for calling Origin from outside Python
The module name is OriginExt, and only applicable for Python 35. Use pip command to install in Windows Command Line.

OC: Added a parameter for specifying the title of dialog created by "okoc_folder_browser"

Added a new parameter "lpcszInitTitle" to the OC function okoc_folder_browser, and the new parameter is used to specify the title of dialog box, now the function is:

int okoc_folder_browser(LPCSTR lpcszInitDir, StringArray* saFolders, LPCSTR lpcszInitTitle)

The new parameter "lpcszInitTitleis used to specify the title of dialog box, and its default value is NULL.


#include <Origin.h>
#include <okocUtils.h> void folder_browser_ex1() { vector<string> vsFolders; int nRet = okoc_folder_browser("C:\\test", &vsFolders,"Folder browser"); printf("%d folders selected!\n", nRet); for ( int ii = 0; ii < nRet; ii++ ) printf("Folder%d: %s\n", ii + 1, vsFolders[ii]); return; }

OC: Functions for  Batch Plotting
Added three oc functions:

1. int GraphPage::CanDuplicate(int nWith = CAN_DUP_WITH_ANY);
Suppose a graph is active, use this OC function to tell if this graph is possible to duplicate with new columns, sheets, books.

2. int GetDuplicateWithCols(StringArray &saItems, DataPlot &dataPlot = NULL, int nModifier = PMMT_IGNORE);
Assume a graph is active, use this OC function to get the list of columns which can be used to batch plot the graph.

3. int GetDuplicateWithBooks(StringArray &saItems, int nModifier = PMMT_OFFSET, int nMatchCol = MATCHCOLUMN_INDEX, int nMatchSheet = MATCHSHEET_INDEX);
Assume a graph is active, use this OC function to get the list of sheets or books which can be used to batch plot the graph. If nMatchSheet == MATCHSHEET_IGNORE then Range is Sheet, else Range is Book.

OC: function for Code Builder File Access

Added a new OC function:

BOOL CBFileOpen(LPCSTR lpcszFileName, LPCSTR lpcszSectionName=NULL, int nCntrl = CBF_OPEN);

lpcszFileName: File path and name.

lpcszSectionName: Specify a section you want to go.


  • CBF_OPEN: Open the file in Code Builder.
  • CBF_TEST_IS_OPEN: Check if the file is opened in Code Builder.

OC: Need better support for accessing embedded matrix via LabTalk and OriginC

Added a new OC function:

int Worksheet::IsHolderSheet(PageBase& pg = NULL);

Check if the Worksheet is embedded page.

LabTalk: Getting the information about the cell link that is in a cell with labtalk

Imporve cell() function to return cell link imformation

  • cell(col,row,1): return cell link type
  • cell(col,row,1)$: return the raw reference string

Labtalk:  function Unique() to find unique members of a column in SCV

Unique(vs, [sort, occurence])


Unique(A) – get unique value/strings in column A with ascending order

Unique(A, 2) — get unique values/strings in column A with descending order


Support for naming of custom colors
In Colors dialog which is used to create custom color, a Name box is added to allow user to give the color a name.

Allow using English date format in Chinese/Japanese language setting

This will be useful for user who want to keep using English date format in C/J version

  • rename current "Use English in Reports" into "User English in Reports and Graphs" in change Language dialog
  • Add User English in Reports and Graphs checkbox in Numeric Format tab of tools options dialog

Support auto install of fitting function and origin template when installing opx
  1. Fitting function file(*.FDF) and origin template(*.otpu,*.otwu,*.otmu,etc) will be also installed after installing opx
  2. Install Support Files is removed from package manager dialog.

Installed Apps can be updated automatically to make sure they are always the newest version
To make sure the installed Apps are always the newest version, user can turn on App Auto updating by setting @AUA = 1 in system variable dialog.

Cell-Embedded image supported when saving Matrix Book
After insert an image file to a worksheet cell, double-click on it will pop up a matrix window, and convert the cell type from "LBmp" to an embedding matrix.

Option to bring the newly pasted graph object to front

Easier way to modify symbol shape for special point
When customized a special point: 
  • Select a symbol shape from dropdown, will clear the "Custom Construction" checkbox
  • Select "Custom Construction" checkbox, options in custom construction group will affect the preview

Fix Window Properties dialog, GetN Graph preview dialog, and Peak Analyzer dialog show incompletely in High DPI or low resolution

Set Group Folder Location should not require run as admin

Hotkey Ctrl+D to control show tooltip or not

Add a new option to Object Manager
Right click the empty area or Graph level in Object Manager to switch view in order of Appearance or View in Drawing Order.

Origin 2018 Features

Origin Interface

Graph Samples tab is restructured and allow selecting a specific Plot Type category as well as keyword searching.

Images in worksheet cells now be viewed as enlarged popups when running mouse over the cell.

For example, when mousing over the following cells, an enlarged popup image will be displayed.

  • Sparklines cell.
  • A cell with Embedded graph.
  • A cell with Inserted Image from File.

A System Variable @CET is used to control the behavior:

@CET=0, use default size of 250x250
@CET=1 to 29, disable this feature
@CET > 30 is user defined size in pixel, scaled by DPI scale factor

Access to the Character Map in Worksheet cell edit mode.

Double click a cell to enter the edit mode.

Ctr+M or right-click and choose Character Map to insert symbol into cell using the font specified for the cell.

The benefit of this is that it allows actual Unicode characters to be inserted into Label rows, rather than codes used in previous versions of Origin. Hence, then the values in Label Rows are displayed elsewhere, those Unicode characters will be used.

Insert non-keyboard Unicode characters similar to MS Word and other apps using 4-digit code and Alt+X keyboard combination.

To insert a character that is not supported by your keyboard, find the relevant 4-digit Unicode code via Google. Then, when in edit mode, type in the 4 digits and hit Alt+X to convert it to the actual character. Note: If the font for the location does not support the relevant character, it may not display properly even though the character is valid.

This feature works in:

  • Worksheet cells even if rich text isn't enabled.
  • Axis titles, legend, and any regular text label on a graph.
  • Many Origin dialogs that support text entry such as those related to axis title, legend, and text objects. Also dialog like the Find in Projects and others.
  • Notes window.

File: Export: As PDF added for worksheet

In Origin 2018, File: Export: As PDF File... menu is added.

In previous versions of Origin, Export worksheet as PDF file is an option in File: Export: As Image File... dialog. But is not obvious.

Export shows under File: Export: if there is graph floating or embedded on active sheet. for example:.

Origin 2018, if there is embedded graph in workbook, Export Graph... menu shows under File: Export:

In previous versions of Origin, the user needs to double-click on a floating or embedded graph prior to exporting it. 

Remove the "Yes-No" confirmation dialog about saving changes to "Tools: Options" modifications.

After you make modifications in the Options dialog (accessible from menu Tools: Options) and click "OK" button, the changes will be saved directly WITHOUT the dialog to confirm.

App Central Dialog.

The new App Center dialog (keyboard shortcut F10) centralizes App discovery, installation, without having to leave Origin  and open a web browser (unless you choose to learn more about selected Apps).

Context menu to Hide Color List/Palettes and Show All to restore

Some of the color lists or color palettes may not apply to user. Then user can right click from the color list or palette list to hide it.

Chose Show All to make hidden ones visible again.

This also works for user-defined color list/palettes.

Tooltip Improvements on Color related toolbars
  • When mousing over a single color block, HEX number and (R, G, B) show


New Graph Types

Bridge Chart/McKinsey-style waterfall.

Support Bridge chart with total and connecting lines.

  • Coloring bars based on Increase/Decrease and Total.
  • Set Data Indices for Total/Subtotal in Plot Detail: Bridge Chart tab.
  • Show Connect Line and Connect by Subset in Plot Detail: Bridge Chart tab.
  • Select a point in Bridge Chart, right click and you can select Set as Total/Subtotal. After select it, it will append data index to Data Indecies for Total/Subtotal in Plot Detail.
  • New Plot button group in Plot Main Menu: Bridge Chart, Stacked Bridge Chart, Stacked Total Bridge Chart, Horizontal Bridge Chart

Double Y Box Chart.

Plot: Box Chart: Double Y Box Chart menu is added.

In Origin 2018 because on Miscellaneous tab of Plot Details dialog → Graph level, Column/Bar/Box Gap Across layers is checked.

The checkbox used to work for column/bar plot only.

Note: This checkbox is only enabled if

  • layers are all linked.
  • For each linked layer, on Link Axes Scales tab, X Axis Link is straight 1:1.
  • For each linked layer, on Size/Speed tab of each linked layer, Unit is % of the linked layer

Plot multiple line plots with colors mapped to a palette. Corresponding color scale shows in legend.

It was doable before Origin 2018 but needs a lot of steps.

  • Plot: Multi-Y: ColorMap Line menu is added in Origin 2018 to quickly plot it.
  • Easy to change palette.

Labels, Legend, Color Scale and Bubble Scale

GUI to Customize Symbols in Legend.
  • Manually create a symbol+line legend entry with many customization options.

Customization symbol on left side of legend box.
  • Dumbell style line+symbol legend.
  • Scaling factor of symbol size, line thickness to be different from plot symbol size and line thickness.
  • Adjust the left part (legend symbol block) width and height.

Simplify Categorical Values Legend Dialog.

The "Combine Elements Indexed by Same Column" checkbox is hidden and on so such elements will always show as combined in Legend.

To bring back the old dialog, set system variable @LCC=1 and reopen the dialog.

Better Hint and Examples in Update Legend dialog.

Symbol like legend for customized single point in line plot and line+symbol plot.

Before Origin 2018, if user customized a single point in line graph, the symbol failed show in legend.

If user customized a single point in line+symbol graph, the special point legend showed as line+symbol.

In Origin 2018, both are supported. For line+symbol plot, if you want the single point legend show as line+symbol as before, set @lsl=0.

Use One Legend Type Only and Auto Update
Add a new menu option named Use One Legend Type Only and Auto Updateunder Legend context menu. When it's checked and select one type of legend in Legend context menu, all other types of entry will be deleted. When data point/data plot is added or deleted, the legend will be updated automatically.

Support leader line for Pie chart label.

Show a leader line between pie slices and labels.

Support Label for 2D Vector Plot.

Double click vector plot to go to Label tab of Plot Details dialog to add labels.

  • Label can customized to be from any column in same sheet with customization.
  • Label can be rotated and be positioned to arrow head, tail with offset, etc.

Control Decimal Separator for Labels & Annotations at Graph Page Level.

In the past, this is a global control in Tools: Options dialog so user can not set different graph windows differently.

Improvement to data labeling at specified Indices only.
In addition to manually entering specific indices, now specific columns may be selected that contain indices for the specific labels.

Plot Manipulation

Use System Increment list when adding new plots into existing graph.

Origin 2017 supported customizing system color list, shape list, etc. for line, line+symbol, scatter plot.

But when user added more then 1 column of data to existing graph, the customized system color list wasn't used. Instead the color list defined in graph template was used. 

In Origin 2018, when adding more than 1 column of data to existing graph, the customized system color list will be used. 

Easier way to turn on and off active dataset indicator (red frame) in Legend via:

The red frame around plot part of legend is the activate dataset indicator. Analysis, etc. tools always work on active dataset by default. So it's useful to see it sometimes.

The control to turn it on or off is hidden on Legends/Titles tab of Plot Details dialog in the past and hard to find.

Keep Scale in mode untill pressing ESC.

User wants to Scale In toolbar button and keep on zooming in by drawing a rectangle.

Before 2018, after scale in once, need to click Scale In button again to zoom in further.

CInteractively pick data points from graph.

Interactively pick points and collect them in a workbook.

Mouse over the plot you want to pick point. A tooltip will show about the plot's X,Y info. Right click and click Pick  Data Points...

Click a point in graph and make sure it's the point you want to pick. Then press Enter or double click to confirm the selection. Continue it till done. A workbook will be created with x,y coordinates and row indexing, etc. 

Make new Layer Content dialog easy to use
Reorder the column order in left panel of Layer Contents dialog so Column Short Name with Plot designation can be more obvious. In Origin 2018, the default display order in left panel is: Short Name, Long Name, Book, Sheet.

Column Gap control for Double Y Column Plot.

For Double Y column plot, user can go to 1st plot's Spacing tab to set Overlap as a negative value to show some gaps between the the columns.

There is no such control in Origin 2017 and earlier so the bars are always connected in the past.

Show Total Label on Stacked Column/Bar.

Show total value on stacked column/bar or 100% stacked column/bar.

  • Check on the checkbox on Stack tab of Layer level in Plot Details dialog
  • Go to Label tab of plot level in Plot Details to customize diplay, such as decimal place, etc.

Symbol size increments for each plot in group.
  1. Specify the size increment by start size and increment step 5(6), or manually enter each plot's size.
  2. Read symbol size from column label row, e.g. a user-defined parameter row:Size

Use Cluster tool to easily change part of plot to a different color.

Cluster Gadget is improved so user can easily select a range of plot and color it.

User can use cluster gadget to create group for the region of interest and check Color Data by Category.

Then the region will be colored red.

Open Plot Details, user can go to Color List tab to change color.

Graph Theme support for Anti-Aliasing.

Before Origin 2018, there was Enable/Disable Anti-Aliasing toolbar button orpage.aa=1 property for user but it was tedious for user to do it for each graph.

A built-in graph theme AntiAliasing.oth is added on Graph tab of Tools: ThemeOrganizer.

User can apply it to existing graphs or set it as system theme for future graph creation.

Plot 2 Y columns with numeric X, columns will be plotted against row indexing by default.

If plotting one Y column as Columns/Bars with numeric X, it will be plotted as X value positions.

If plotting multiple Y column as Columns/Bars with numeric X, it will be plotted with row indexing by default. Use system variable @DRX>0 (default is 16) to enable this feature only if dataset size is smaller then this value. Set @DRX=0 to disable this change completely. 

Improve Preview for patterns and filled colors

Hover mouse over a pattern block, the preview of this pattern will show.

Allow drag-and-drop to add dataset into the group of Stacked Column
In 9.4, it is not possible to adding a dataset into a Stacked Column by drag-and-drop. Now you can add new dataset into the group of Stacked Column/Bar plot by drag-and-drop.

Graph Page and Layer

Distribute selected layers/graphic objects horizontally or vertically.

Two buttons are added in Object Editor toolbar.

Select all graphic objects and click it to keep begin and end positions of the objects and

distribute them evenly in one direction. E.g.

This also works for multiple Layers. User can press Shift key and select multiple Layers. Then click the button to distribute layers horizontally or vertically.

Control display of  masked data at graph page level.

Display of masked data on graph can now be controlled for individual graphs via the following Labtalk:

page.mask = 2; // Display masked data on active graph

page.mask = 1; // Hide masked data on active graph

Ctrl+A Keyboard shortcut Selects All in Graph and Layout window.

This feature is useful when user needs to select all layers in agraph or all objects in layout to move and/or resize together.

  • Ctrl+A to select all layers in a graph.
  • Ctrl+A to select all objects in layo


Support Arrow at axis begin and end in 2D graphs.

Arrow node on Line and Ticks tab of Axis dialog

Add custom reference lines to your graph:

Define Reference Lines based on statistics or expression and saved in graph template for future use.

  • Statistics


Click Details on Reference Lines tab of Axis dialog to define reference lines.

  • Expression

Change Filling color between Reference Lines with Alternate Fill.

Before Origin 2018, if Alternate Fill was checked for Reference Lines, user couldn't change fill color.

In Origin 2018, click Details... button on the tab. Then select all entries on the left panel and change Fill Color to change all fill colors together.

Show reference line in Trellis plot
You can control reference line show in specific panel in trellis plot through Reference Lines dialog's Show on Panel control. Label will show when open Reference popup to incicate panel index.

Support Reference Line for Polar(and other special plot types)
Polar graph, Radar chart and Ternary all support reference line.

Different ways to wrap tick labels.

Wrap based on layer length

Wrap by Minimum number of characters.

E.g. in the following example, set tick label display to Custom Display with MMM dd HH:mm:ss

And to wrap with by minimum 1 char. It will show Month, date and time each on one row.

Axis Break Improvements:

In Origin 2018,

  • When Anti-Aliasing toolbar button is pressed, axis break will look smooth as well.
  • Use Proportional Unit for Axis Break Positions checkbox is added on Display tab of Page level of Plot Details dialog.

Support not plotting filtered rows for text axis:

E.g. Some data are filtered in worksheet.

When plot column plot in Origin 2018, only those data in display will be plotted with their corresponding X axis.

Before Origin 2018, though the filtered data are not plotted, the x axis still kept their position with blank tick label.

Note: This only applies to X column that contains text and not set as categorical.

Allow number of Major axis ticks to be 0.

This will allow user to create a graph with only begin and end ticks and no ticks in between by:

  • On Scale tab, Set Major tick by Count and Number of Ticks to be 0.
  • On Special Ticks tab, choose Show in Show column of Axis Begin and Axis End.

No extra space after / or - when using /<U> and -<U> as axis unit.

Before Origin 2017, In Tools: Options →Axis tab, when specifying unit separator as /<U>, or -<U>, an extra space shows after / or -.

In Origin 2018, by default no space will be added after / or -. User can manually set it as / <U>, or - <U> to add a space.

We will continue to have space before units separators by default. System variable @ATSS is added to control space before unit separator.

1: space before unit separator (default)
0: no space before unit separator

Axis end doesn't look nice when zoomed in

Before Origin 2018, when zoomed in, Axis ends didn't look good.

In Origin 2018, the Axis ends will look nice even when zoomed in, depending on different coordinate system.

-2 (default): square for Cartesian (=90 degree) coordinate, round for other coordinates (!=90)
-1: follow @LCA
0/1/2 round/square/flat, 

3D and Contour

3D XYZ Colormap Surface supports colormapping from another column.

In the past, we don't support this so user has to convert XYZ data and the coloring data into Matrix first since 3d colormapping surface plotted from matrix supports colormapping from another matrix object.

3D XYZ Colormap Surface supports custom boundary.

Contouring Info tab is added in Plot Details dialog to specify XY boundary.

Support no smoothing when set custom boundary for XYZ contour.

In Origin 2018, user can uncheck Smoothing checkbox when using Custom Boundary.

Before Origin 2018, the checkbox couldn't be unchecked so there was always some smoothing effect. Workaround: Set system variable @tcs=0 to minimize the number of smoothing data points

Support Lighting effect for 3D walls plot.

Before Origin 2018, Lighting was only supported for 3D OpenGL based surface and 3d Bars.

In Origin 2018, we added the support for 3D Walls.

Drag on graph to move light source.

Hotkey S is added on 3D graph to move light source.

  • S key + arrow keys
  • S key + drag
  • S key with + to zoom in. S key with - to zoom out


Fitting: Add more Fit Statistics to fitting Result Table Quantities.

In previous versions, some Fit Statistics were excluded from list of available Quantities in Table. More items are available in Origin 2018.

Fitting: Null hypothesis footnote is added under ANOVA table of Nonlinear Curve Fit, Multiple Regression, and Polynomial Fit report sheets.
Requested by customer.

Fitting: FDF should include Category

Add new Category key to FDF General Information section.

  1. When D&D the FDF to Origin, FDF is automatically installed under the Categorys according to the Key.
  2. If this new key is empty or missing, it will pop up dialog to ask about which category to install.
  3. Operations in Fitting Function Builder and Fitting Function Organizer will update this Category key, such as Create/Move func.
  4. Fitting Function Builder allow to change category since 2018.

Fitting: Fit until converged supports all datasets for multiple data

In Nonlinear Fit tools, add All option in the Select data to iterate drop-down list which allow to iterate on multi datasets at the same time. 

Fitting: Put all weighting methods in dropdown items for all input datasets
  • In Nonlinear Fit tools, Data Selection page, all weighting methods are putted in the Weights drop-down list whichi allow to set multi datasets' weight mehod.
  • In Nonlinear Fit tools, Data Selection page, add Apply Weight to All menu to Range's context menu list. 

Fitting: Smarter Handling of NLFit X Data Type
When Iteration Algorithm is set as "Levenberg Marquardt" in Nonlinear Fit tools, Fitted Curves page, default X Data Type is changed as new method: Follow Curve Shape. (Note: except the Nonlinear surface/matrix fit tool)

Peak Analysis: Automatically set Area/Amplitude boundaries based on Peak Finding Direction.
  • If Peak Finding direction is Positive only, then Area boundary is >=0.
  • If Peak Finding direction is Negative only, then Area boundary is <=0.
  • If If Peak Finding direction is Both, then no boundary is set.

Statistics: Add grouping support for Statistics on Rows.

Statistics on Rows now allows grouping based on values in a columns label row. For example, in below illustration, results will be grouped by values in the Long Name label row.

Statistics: Discrete Frequency for categorical data needs to add zeros for if not found

Discrete Frequency dialog  adds a checkbox Show Zero Count Categories.

Statistics: Improve Weibull Fit with RRX method and Add Plot for survival function and hazard function for weibull fit - Origin Pro

Weibull Fit dialog adds below new items:

Statistics: Weibull Fit Calculate 100% Probability Which Can't Plot
Origin 2018 changed Weibull Fit tool's Score Methods from Kaplan-Meier to Benard, which also affects Distribution Fit tool's probability plot .

Statistics: Rename Weibull Percentiles into percentages

Weibull Fit tool's PlotData worksheet column label changed.

Statistics: Add ellipse coefficient to correlation matrix

From Origin 2018, the major and minor radius of the correlation ellipse in Scatter Matrix are exported to the result sheet. No matter you create the Scatter Matrix from Plot: 2D: Scatter Matrix or Statistics: Descriptive Statistics: Correlation Coefficient, you can find the major and minor radius of each correlation ellipse by A and B values in the Parameters column label row of the PlotData worksheet, where A is the major radius and B is the minor radius.

Statistics: Add Median Absolute Deviation, Robust Coefficient of Variationand Harmonic Mean for Statistics on Columns/Rows tool

Statistics on Columns/Rows dialog adds below checkboxes:

Statistics: Add option of Exclude cumulative counts plot to Pareto chart dialog

Add options to the Pareto Chart (Binned and Raw) dialog

  1. Add Show Cumulative Percent Plot checkbox to plot the cumulative counts plot.
  2. Add branch Combine Smaller Counts in One Category to group combine smaller values settings.

General: Set Default Digits for individual types of analyses.

Prior to Origin 2018, there is only global control of display digits via Digits in Report in the Numeric Format tab of Tools: Options.

In 2018, users can specify default Default Digits to apply for different types of analyses. For example:

After an analysis is done, right click in the table in the result sheet and choose Digits...  Set the Digits values and check Save as Default.

The default will apply to other instances of that particular analysis operation in the future.

To reset back to system default: Close Origin. Go to User Files folder and delete Defaults.XML.

General: Ignore Hidden column/plots when choosing all columns or plots for analysis.

A system variable, @AIP, is added to control whether ignore hidden column(s)/plot(s) or not when adding all as input(s) for analysis.

  • =1 (default), ignore hidden plots.
  • =0, include hidden plots.

For example, if some columns or plots on a graph are hidden, when opening an analysis dialog that supports multiple inputs and the user chooses All Colu

Data Processing

Worksheet Cell Formula.

Keep formula exactly as entered by user.

Before Origin 2018, formula auto expanded in some cases.

  • Sheet index in formula auto expanded to sheet name. E.g. user typed 1!A. It auto expanded to Sheet1!A.
  • If type A+0.5 in column A formula, it will become This+0.

System variable @SCVU is added in Origin 2018.  By default what you type will be what you see. If you want it to go back to 2017 behavior, set @scvu=0.

New X-Function wcellfmt added to set selected cells' format.

Run wcellfmt -h to see Help and examples.

E.g. the following example first uses wxt x-function to select all rows with B>0

Then set the fill color of the selected cells to green

Copy Full Precision change to text only

Since Origin 2018, when use choose Copy Full Precision, the copied content will be text only in clipboard, then it would be convenient for user to paste to another application.

Set @CPF = 0 to go back to 2017 behavior.

Rename sheet name and long name inNavigate Worksheetdialog.

For a workbook with many sheets, user can right click any sheet tab and choose Navigate to delete, order, duplicate sheet etc. But renaming sheet wasn't supported.

Added in Origin 2018 now.

System Variable to hide worksheet tab tooltip.

When mousing over a worksheet tab, worksheet short name, long name and comments show. But it can block other sheets.

A system variable @WTT is added. Default is 1 (enabled). Set it to 0 to disable worksheet tooltip.

Increase the Maximum number of Sheets per workbook.
  • Before Origin 2018, the maximum sheets per book was 255. Now in Origin 2018, it's 1024.
  • page.nlayers property is set to writable so run page.nlayers=1024 to quickly create 1024 sheets. It's faster than using repeat 1023 { newsheet; }.
  • If there are more than 255 sheets in a book, the project can't be saved as opj. Can only be saved as opju.

Increase the Maximum Undo times to 100.

In Origin 2018, the default maximum number of Undos is set to 100. Before Origin 2018, it was 10 times. Corresponding system variable: @UN.

Support carrying over column categories in worksheet query.
Support carrying over column categories during worksheet query data extraction to new book/sheet.

Better color syntaxing for LabTalk function and Spreadsheet column name notation in Set Column Value dialog.
In Set Column Value dialog, use Navy color for LT variable, Wine color for LT function, Pink color for Spreadsheet column name.


Support Undo for Import ASCII, CSV, and Excel.
After importing either ASCII, CSV, or Excel, user can choose Undo from the Edit menu or Ctrl+Z to undo the import.

To make Reimport and Clone Import more obvious, a new Import toolbar is created with more buttons.

Set Origin to be the default software to open data files.

In Origin 2018, if user right-clicks on a data file and set the file to open with Origin or set Origin to be the default program to open it,

data file will be imported into Origin directly whenever such a file is double-clicked.

Display imported file name in a new worksheet label row entitled "SourceFile".

A new checkbox "Add Filename User Parameter Row" in Import dialogs.

If checked, "SourceFile" label row appears in worksheet after import. This label row can be used in any place label rows can be used such as legends.

Importing specified columns and rows in ASCII, CSV, and Excel dialogs using specific syntax.

Under Partial Import node. See ASCII Import dialog for example syntax.

  • If Custom isn't checked, use From, To, Read, Skip buttons to construct the partial import.
  • If Custom is checked, user can import specified columns/row by following our syntax. Sample example hint is given. 

More options in Excel Import.

  1. More sheet renaming options: This is useful if user import sheets in different files and wants to rename sheet with Excel file name.
  2. Put Filename or Sheetname to Comments, SourceFile, or SourceSheet column label rows.

Support Skip Column when importing CSVfile.

This was already supported in some other import like ASCII, Excel, etc.

Added the Read Columns and Skip Columns in CSV Import.

Copy and Paste Excel cell(s) to Origin Graph will paste as text by default.

Before Origin 2018, if user copied some cell(s) in Excel and then pasted it into Graph window, it was pasted as Excel object by default. User must use Edit: Paste Special... to paste as unformatted text.

In Origin 2018, the cells will be pasted as text by default. If user wants to paste as Excel object, user can choose Edit: Paste Special... or context menu and choose to paste as "Microsoft Excel Worksheet".

Set system variable @PXLTXT=0 to change back to old behavior.

Import ASCII one row header line with special format
Change the Extract Long Name and Units from Same Line node to Composite Header Line No. node, when this node is check, we show the Composite Pattern node for specify the composite pattern of Long Name, Unit andComment, if it is <auto>, it will works as the old way.

Import Excel- Support Importing Sheets into Separate Workbooks
 Add a new option Start New Books for Each Sheet in "1st File" and "Multi-File" Import Mode, but currently re-import is not supported in this mode.

New impASC on GUI and related changes

Reconstruct the Import ASCII X-Function "impASC"(including the impASC setting dialog), and also it is compatible with the old one in LT script. However, we also add a system variable @IA for users who want to use the old one to roll back.

@IA = 1
File Menu: impASC_94
Tool Bar: impASC_94
LabTalk Script (run -xf impasc): impASC_94
Reimport (from old 94 .ogw): impASC_94
Drag and Drop (with old 94 .oif): impASC_94

@IA = 2
File Menu: impASC
Tool Bar: impASC
LabTalk Script (run -xf impasc): impASC
Reimport (from old 94 .ogw): impASC
Drag and Drop (with old 94 .oif): impASC

Support Partial Row Import for Excel

Suppport Partial Row Import for Excel import tool, add Partiial Rows branch with five nodes under Options: Partial Import:

Exporting and Presentation

Ignore hidden columns in ASCII Export.

Before Origin 2018, when exporting a worksheet as ASCII data, hidden columns were exported.

In Origin, by default hidden columns will be ignored and will not be exported.

To export hidden columns, set system variable @UHC=1. 

Define the region to export or copy page in Origin 2018.

Batch Processing

Improvements to Batch Processing:

Mini tutorial:

  1. Open Batch Processing dialog.
  2. Load Analysis Template under <Origin EXE folder>\Samples\Batch Processing\Sensor Analysis.ogwu.
  3. For File List, select Sensor01, Sensor02, and Sensor03.dat under <Origin EXE folder>\Samples\Curve Fitting\.
  4. Set Result Sheet as Result.
  5. Click OK. In Summary sheet, there is a graph image from the analysis Template on each row. Mouse over it to pop up a larger image of the graph.

How to include a graph image in each row or report sheet:

  1. Open the analysis template .OGWU file. e.g. <Origin EXE folder>\Samples\Batch Processing\Sensor Analysis.ogwu.
  2. Copy an embedded in the report sheet and Paste Link in a cell in the sheet that will be used as Summary Sheet in Batch Processing. 
  3. Save the analysis template and use it in Batch Processing dialog.

Batch processing support XYZ columns, worksheets, and data ranges.

1.XYZ column

support in both using existing xyz datasets or import from files.

2. Use existing worksheets

support using any sheet from opj as input, if selected it will copy all columns to data source in analysis template.this options should be useful for statistics tools not require column designation.

3.Use Existing Ranges

it will have two input range: Fixed Range and Batch Range, Fixed Range means those data which is fixed in each process. this options should be useful for statistics tools.

Improve Labtalk script to support exporting specified embedded graph(s) or graph sheet(s) during batch processing viaScript After Each Process inBatch Processingdialog.
Example scripts:
//To export a graph sheet with sheet name: Graph1

expGraph type:=pdf overwrite:=rename export:=specified page:=Graph1!;
//To export a graph sheet with is the 5th sheet
expGraph type:=pdf overwrite:=rename export:=specified page:=5!;
//To export embedded graph in result sheet by graph short and long name
expGraph type:=pdf overwrite:=rename export:=specified pages:="FitLine - Linear Fit";
//To export embedded graph in FitLinear result sheet by graph short name
expGraph type:=pdf overwrite:=rename export:=specified pages:=FitLine;

//To export embedded graph in worksheet cell
expGraph type:=png filename:="<long name>" export:=specified page:=col(A)[3];

//To export multiple graph cells or floating graph
 expGraph type:=pdf  overwrite:=rename page:=2!; //sheet index

Project and Data Management

New Project File Extension for New File Format and File Dialog
In Origin 2018, New File Extensions like OPJU, OGWU, OGGU, OTWU, etc are added to various opening/saving file dialogs drop-down lists.

Convert Origin to use Unicode for text and a new file structure for various Origin files including projects.

File extensions are changed to: OPJU, OGWU, OGGU, OTWU,, etc.

New structure allows file sizes to be reduced (sometimes greatly).

It also allows files to be loaded more quickly.

Support Preview and  thumbnail file images in Windows File Explorer for Origin Files. (Toggle Windows File Explorer Preview pane using the  Alt+Pkeyboard shortcut).

If Origin crashes, it will restart with last Autosaved OPJ/OPJU loaded

If an OPJ/OPJU file is opened and being worked on in Origin, it will be autosaved every 12 minutes by default and if Origin crashes, user can go to Autosave folder to find it. 

In Origin 2018, if Origin crashes, it will restart with last Autosaved OPJ/OPJU loaded so user doesn't need to manually find it in Autosave folder. 


  • If it happened that Origin crashes before 1st autosave happened, then the original OPJ/OPJU will be loaded. 
  • If you have worked on a new project file but never saved it. It is called Untitled.opj Origin doesn't autosave Untitled.opj
  • Old feature: User can control how often project is autosaved in Tools: Options dialog.

In the Projects tab, Origin projects that were modified and not actually saved can be reopened with the modifications in place via the Unsaved Files list.

Even if the user chooses not to save a project file (OPJU), an autosaved OPJU will be kept for 7 days by default. If the user actually saves the project after modifying it, the unsaved version will be removed.

  • The unsaved version can be opened from the Unsaved File list in the Projects tab.

  • The user can turn off this feature from Tools: Options: Open/Close tab.

  • The System Variable @USKT is used to control how many days to keep the unsaved OPJU file. Default is 7 (days).
  • The system Variable @USM is used to limit the maximum OPJU size for Autosave Unsaved Project. Default is 20 (MB).


Labtalk: Option to let graph source always plot all Y columns in worksheet.

With graph window active, run layer.group1.AllCols=1; in Script Window.

Then all Y data in the worksheet will be plotted and, as Y columns are added or deleted, they will be removed/added to the graph.

Note: This only applies to worksheet with XYYY... plot designation.

Labtalk: New X-Function wcellfmt added to set format of selected worksheet cells.

Run wcellfmt -h; in Script window to see Help and examples.

For example: The following example first uses wxt x-function to select all rows with B>0 and then set the fill color of the selected cells to green.

Labtalk: Diff() function supports padding in the begin or end of range.

Add optional argument to current function:

vec Diff(vec[,n]) //support length of vector is N

where n can be
0 default, output vector length is N-1
1, pad 0 at the end, output vector length is N
2, pad 0 at the beginning, output vector length is N
3, 1st value in v, diff(v,0), last value in v, output vector length is N+1

For example: Suppose there are 10 rows in column A and Set Column Values of B as

diff(A) – returns 9 numbers. No value in last row.

diff(A,1) – returns 10 numbers. 0 at the end.

diff(A,2) – returns 10 numbers. 0 at the beginning.

diff(A,3) – returns 11 numbers. The begin and ending values are original begin and ending values in A. In between are diff(A) values .

Labtalk: LabTalk Command to convert OriginC C and CPP files to become OCZ for distribution.

Syntax for the conversion command is is

file -ocz password srcpath destination;

srcpath can have wildcard in file name, and in this case destination must be a folder location and destination files will use source file name and extension changed to OCZ.
password must be between 2 to 20 characters and space is now allowed.

The Message Log will list each successful conversion and indicate at the end as "Done!" or "Failed!". If any errors occur, they will be displayed in a Messagebox.

For example:

file -ocz junk "%YOriginC\*.c??" "%Yabc"

file -ocz "aB12#$" "%YOriginc\test.c" "%Yjunk.ocz"

Labtalk: Better LabTalk access to plotting X-functions.

The X-functions below can be run  via LabTalk to create graphs.

  • plot_paretobin
  • plot_paretoraw
  • plot_gboxindexed
  • plot_windrose
  • plot_gindexed
  • plot_lineser
  • plot_kde2
  • plot_prob
  • plot_matrix

For  example:

plot_gboxindexed irng:=col(A) group:=col(B) theme:="test";

Labtalk: Support  -mfph switch for LabTalk Create command to create a hidden matrix from 2D loose datasets for 3D parametric function plot.

For example:

create myx -fp2 50 u 0 1 50 0 1;

create myy -fp2 50 1 0 1 50 0 1;

create myz -fp2 50 v 0 1 50 0 1;

create FuncRight -mfph myz myx myy "u,v";

Labtalk: LabTalk Function for Data Range of Plot

Add a new LabTalk function to get the data range of a plot in graph.

Syntaxdataset plotdata(index, designation, x = 0, y = 0) //x&y refers to panel index.

Also, two new LabTalk functions added to get the first point and last point of a plot.


double FirstPoint(vector vec);
double LastPoint(vector vec);

Labtalk: LabTalk Save command updated to support new file format
  • save -i filename; //Save the active worksheet, graph, or matrix window to a file with new file format, file extension will be ogwu, oggu, ogmu 
  • save -ij filename; //Save the active worksheet, graph, or matrix window to a file with old file format, file extension will be ogw, ogg, ogm 
  • save -ik filename; //Save the active workbook as analysis template with the extension of ogwu 
  • save -ikj filename; //Save the active workbook as analysis template with the extension of ogw 
  • save -t windowName filename; //Save windowName into a graph or worksheet template with new file format, fill extension will be otpu for Graph, otwu for Worksheet
  • save -tj windowName filename; //Save windowName into a graph or worksheet template with old file format, fill extension will be otp for Graph, otw for Worksheet
  • save -di/-di1 filename; //Save the project as new file format with the extension of opju 
  • save -dij filename; //Save the project as old file format with the extension of opj 

Also, use option X to Save With Format Determined From Supplied File Extension. Following switches are supported, -ix, -tx, -dix.

For example, 

  • save -DIX %yMyProject.opj; //saves the project in the opj format with the name MyProject.opj
  • save -DIX %yMyProject.opju; //saves the project in the opju format with the name MyProject.opju
  • save -DIX %yMyProject; //saves the project in the opju format with the name M

OC: Additional dialog-related Win API functions

Support added for flashing dialog title bar, etc via the functions FlashWindowEx() and FlashWindow().

For example:

st.cbSize = sizeof(st);
st.hwnd = s_pMyDlg->GetSafeHwnd();
st.dwFlags = FLASHW_CAPTION;
st.uCount = 3;
st.dwTimeout = 0;
    // Others events.
BOOL OnInitDialog()
    HWND hwnd = GetSafeHwnd();
    // Add WS_EX_LAYERED to this window style.
    SetWindowLong(hwnd, GWL_EXSTYLE, GetWindowLong(hwnd, GWL_EXSTYLE) | WS_EX_LAYERED);