Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Graphing

New Graph Types

...

JIRA

SUMMARY

DESCRIPTION

DETAILS

ORG-26182

Built-in LaTeX Support - Beta2

Using SVG drawing for LaTeX

LaTeX App and MikTex installation no longer needed.

LabTalk substitution notation \q(\varphi_{\mu, \sigma^{2}}(X)) will use built-in SVG rendering by MathJax JS library.

@MKX=0 to mean use built-in LaTeX and user must manually set it to 1 to go back to old way (Beta3)

How it works in Graph/Layout window

  • If LaTeX text already copied from somewhere else, right click inside graph and choose Paste LaTeX

  • Insert: LaTeX Equation… menu or right click inside graph and choose Insert LaTeX Equation…

  • For mixed text and LaTeX Equation, in in-place Edit mode of text object, past in such syntax \q(…..)

  • Or in in-place edit mode of text object, right click and choose Insert: LaTeX Equation…(Ctrl+L) to open LaTeX Equation Editor dialog.

  • Right click text object and choose Properties… context menu and enter such syntax

How it works in Worksheet cell

  • Click on a cell and use mini toolbar button.

  • To see the effect, right click the cell set Data Style to RichText to turn it on.

  • If it’s column label row, click on corresponding row header and check RTF to turn on Rich Text.

How it works in Notes window.

  • Right click in Notes window and choose Insert: LaTeX Equation

Support using third party extensions of MathJax

  • Select menu Tools: LaTex Extensions to open dialog to install third party extensions.

ORG-25575

Label Reference Lines With a Column

Specify reference line labels from a column

On Reference Lines tab of Axis dialog, Label Form control added. Specify a column for reference line labels.

ORG-26599

More Legend Substitution Notation - Beta2

Show plot’s layer & group name, plot index or column designation info. in legend

More legend substitution notation added for translation mode.

  • @LX - column designation. If columns in worksheet are X1Y1Y1 X2Y2Y2, if user plots all Y columns. And set legend to be @LX, it will show 1, 1, 2, 2, (since 1st two plot are from 1st X, and 2nd two plots are from 2nd X ).

  • @L1 - plot index. E.g. if plot 5 plots in one layer, it will show as 1, 2, 3, 4, 5.

  • @L2 - group info. When highlight multiple data to plot, they are in one group e.g. g1. User can rename groups in Object manager and show group info. in legend.

  • @L3 - layer info. For multi-layer graph, user can give meaningful layer names in Object Manager instead of using default Layer1, Layer2. Using @L3 will show corresponding plot’s layer info. in legend)

E.g. the following legend shows layer name (@L3) - plot index (@LX)

ORG-25886

Better default legend position

LabTalk command to intelligently reposition the Legend.

LabTalk command run.section(standard, legendsmartpos) is added to move the Legend to a best position.

ORG-26352

Hide Markers in legend - Beta2

Analysis markers (e.g. peak markers and baseline markers, etc.) will not show in legend by default.

Peak markers and baseline markers, etc. showed in legend in the past after doing peak analysis.

In Origin 2023b, it will be hidden in legend by default. This is controlled by page.peakm=0 (by default)

To make them show in legend, set page.peakm=1 and click Reconstruct Legend button (or Ctrl+L).

ORG-26429

Easier way to turn on Active Dataset Indicator in legend - Beta2

Indicate Active Dataset button on legend level MT button

Toggle to turn on/off active dataset indicator in legend. When it’s on, a red frame will show on legend of active dataset. By default when opening analysis tools from graph window, active data will be used as the input.

Click on other symbol in legend will change active dataset. The frame will show around the newly clicked plot symbol in legend.

In the past, user would have to choose Format: Page… to open Plot Details dialog. Check it on Legend/Titles tab.

ORG-26114

Add straight line consider divide by factor - Beta2

When adding straight line in graph with tick labels calculated by divide by factor, user can use the calculated tick range

E.g. support x range is 0 to 200 while user set tick label by divide by factor 10, tick labels will show as 0 to 20.

When adding straight line in the past, user had to enter values before division, e.g. to add a line at location 12 (by looking at tick labe), user actually needs to enter 120 in Add line dialog. In Origin 2023b, user can directly enter 12.

ORG-26406

Annotation moves with plot with offset - Beta2

Annotation should move with data plot when offset is changed

New system variable is added @AFP=1 (default). When it’s 1, when text property text.follow=1 by default when adding new annotations. It will not affect existing annotation in existing project file.

ORG-26466

Attach Legend to Plots Improvements - Beta2

Fix translation mode of of labels after using Attach Legend to Plots button on legend MT button

User could use Attach Legend to Plots button on legend mini toolbar button to put legend info. next to each plot.

E.g. in following image, user sets legend to represent mean value of each plot. Click the Attach Legend to Plots button, legend info. will be attached to end of each plot and they are linked.

If user then changes the legend to show other info., e.g. Comments info., the label after each plot will change as well.

In Origin 2023b, a system variable @ALP to control it. By default it’s 0 so label translation mode will be fixed so changing legend afterwards will not affect labels. Set @ALP=1 to roll back to old behavior.

ORG-26070

Vertical Alignment option for Data Info. and Tooltip layout

Vertical alignment options added for Data Info. window and tooltip window

There used to be Horizontal alignment only when customizing data point tooltip and data info window.

In Origin 2023b, vertical alignment options are added for tooltip layout when mousing over data points and data Info. layout when using Data Reader, Data Cursor, etc.

To customize in Data Info. window, mousing over data point in graph. Right click inside the yellow tooltip and choos Preferences…

Click Pencil icon on top of column header column (Note: Vertical alignment is shared across all columns while Horizontal alignment can be independent in each column)

To customize Data Info. window when using Data Reader, double click in Data Info. window to open Preferences dialog and click Pencil icon in column header.

...

JIRA

SUMMARY

DESCRIPTION

DETAILS

ORG-25582

Insert, resize and rotate SVG image in graph

Allow easy placement, resizing, and rotation of SVG images in graphs

  1. Drag the SVG image to placing, single click to enter Resize mode, single click twice to enter Rotate mode.

  2. Double click the SVG image to open dialog and change Position, Size, (Rotated) Angle and Reset to Native Aspect Ratio. Note: Reset to Native Aspect Ratio is only available if not rotated SVG image

  3. LabTalk to change rotation: object name.Rotate = 90. Double click the SVG image to check the SVG object name in the Control tab

ORG-26143

Link SVG image with external file for real-time update

Right click on the SVG graph object and check Link File context menu.

  1. The inserted SVG graph object will be automatically updated if it’s changed outside origin.

  2. The inserted SVG graph object in saved opju will be automatically loaded when opening the opju.

ORG-26142

Info. of SVG image on Status bar and Object Manager

SVG image object name, linked or not, file path

  1. Click on SVG image to see info. on left side of Status bar

  2. In Graphic Object View of Object Manager, check or uncheck to turn SVG on or off, double click to open Object Properties for further customization. (Linked) show if it’s linked

ORG-26154

Insert Image Auto Set Linked File and Message

Insert image from file or web should be set as Linked File if file size is larger than 800kb

By default, system variable @IML=800. If file size < 800kb, image will not be set to Linked File, otherwise it will automatically be set as linked file.

Set @IML =1 to set all inserted image object as linked file.

ORG-26108

Copy Paste Linked Image between Graph windows

Keep image linked and updated when copy and paste an image from one graph or layout to other graph/windows

In the past, if image is linked to external file, when copy (Ctrl+C) and paste it (Ctrl+V), the image object shows hashtag, etc. so user needs to double click the image to open Image window and Import to update it.

Much straight foward in Origin 2023b now. Paste will directly show the image.

ORG-26197

Histogram mini toolbar to open a mini dialog for bin settings

Support Bin Settings button in Histogram mini toolbar to customize Bin of Histogram

ORG-26061

Support Gradient Fill for 3D Bar When Color Fill By Point

Enable gradient fill group when fill color of 3D bar and XYY bar is filled by point.

ORG-24181

Axis arrow heads in 3D Graph

Turn on arrow head for XYZ axis in 3D graphs

ORG-25711

Box&Whisker mini toolbar button - Beta2

Dropbox added on box chart mini toolbar button

Dropdown button added before the button to adjust box gaps.

ORG-24777

Show arrow in 3D trajectory graph

3D Line Tab Support Arrow

Arrow group is only available when connect symbols is checked.

ORG-25465

Index the 3D symbol shape to a column

We support map symbol shape to a column in 3D scatter plot.

Added Increment and column of source sheet in the dropdown of Shape option.

ORG-24062

Modify Scale for 3D tetrahedral

Support rescale all axes

ORG-25974

Sankey Link Connect to Center of Node

We put link to center of node, like the right part of the graph

ORG-25975

Sankey label improvements

When label is inside node in Sankey, move label could also move node

When label is inside node, there is no label offset, select label to move should move node.

ORG-25714

Improvement on scatter matrix graph

Support mixed display (what is this word supposed to be?) mode to show statistics in lower/upper triangular. More options to customize the label text. More statistical plot type for the diagonal cells.

  1. Show result (fitting curve, statistics) for each group if a group column is specified.

  2. Mixed matrix display option to show additional statistics in lower/upper triangular.

  3. More display option for the diagonal cells: e.g. distribution curve, histogram+distribution curve.

  4. Custom statistics labels.

    1. Custom label text.

    2. Show significant marks.

    3. Label size by value.

ORG-25849

Show Heatmap Labels for Lower/Upper Triangular without diagonal

Support Lower/Upper Triangular without diagonal for label display.

ORG-26059

ORG-26272

ORG-26623

Multiple Additional Planes for 3D - Beta2

We support Multiple Planes for 3D

Before Origin 2023b, user could only add one additional plane in 3D graph on Planes tab of PlotDetails dialog.

In Origin 2023b, … button added to add more than 1 additional planes

You can also add it from LabTalk Script by layer.plane.add command.

Syntax: layer.plane.add(type, pos[, color])

  • type: 1 for XY, 2 for YZ, 3 for ZX

ORG-26220

Increased Histogram Bin Limit

Increased to maximum number of Histograms bins to 10,48,575.

Origin used to have a 1,000 bin count limit. It has now increased to 220-1 (10,48,575).

ORG-25845

Only Show Date Part on 1st Tick of That Day

For axis with tick increment by hour(s), only show Date part of 1st tick of the day

If showing both date and time for each tick label, they will run into each other. A checkbox Show Date for 1st Tick for the Date is added on Tick Label → Display tab.

ORG-25962

Drag Selection on Graph to show MT

In graph window, drag selection in Region of Interest, support mini toolbar to Scale in or Enlarge to Separate Graph

ORG-25540

ORG-25997

Apply Formatting MT button on Axis should have choice for layer vs window

For multiple panel graph, click axis in any layer, click Apply Formating To button, support This Layer and This Window in the context menu to easily customize axis for different layer

For This Window, support three more context menu X Scale, Y Scale, All Scales

ORG-26470

Rescale Margin Improvement- Beta2

Independent rescale margin for min and max of axis

In the past rescale margin is shared between both sides of axis. E.g. top and bottom axis will share the same margin.

In Origin 2023b, independent controls are added. E.g.

  1. Right-click on Y axis and choose Rescale Margins

  2. Uncheck Same Margin for Allow Separate Rescale Margin for Top and Bottom

  3. Click the Rescale (Ctrl+R), Rescale X, Rescale Y buttons on toolbar bottons on right side of workspace to update.

Note: In Browser graph, editing Rescale Margin… will trigger the auto rescale. No need to do 3.

ORG-26430

Align Y Axis on Single-Layer Double-Y graph - Beta2

Align Y axes at specified value in new single-layer double Y graph.

There is this control in old multi-layer double Y graph. It’s on Link Axes Scales tab on layer level of Plot Details dialog

Origin 2023b introduced single-layer double Y graph but alignment option not included.

In Origin 2023b, Align Both Axes at control is added on Show tab of Axis dialog to align both left and right Y axis at specified value

ORG-26168

Colormap for Box plots

Colormap box fill color with column label value, etc.

Colormap to checkbox is added under Fill group on Pattern tab, with dropdown list to pick which info. to colormap to.

Then go to Colormap tab to set levels and color palette, etc.

...

JIRA

SUMMARY

DESCRIPTION

DETAILS

ORG-26020

Sheet Navigator Add Dimension Column

In order to check all sheets' dimension, add the Dimension Column in workbook/matrix’s Navigator.

Right click on worksheet/matrix name tab and choose Navigator menu, check the Dimension column in the opened dialog.

ORG-25916

Support Function to Calculate RMSE MBE MAE

Add new functions to calculate RMSE, MBE, and MAE

Three new functions are added to Statistics category in Set Values dialog to calculate RMSE, MBE, and MAE.

  • rmse(vobs,vpred): root mean square error

  • mbe(vobs,vpred): mean bias error

  • mae(vobs,vpred): mean absolute error

ORG-26095

Unfreeze panel Mini toolbar

Unfreeze Mini toolbar when clicking on frozen column/row/cell

Added a Mini toolbar button to to unfreeze any cell/column/row when clicking on the frozen selection.

ORG-26206

Prefer Long Name in SCV dialog

Remember the Prefer Long Name option status in Set Values dialog

In the Set Column Values dialog, at the Col(A) menu, the "Prefer Long Name" is checked by default. Now the status can be rememberred next time open. It’s controls by system variable @SCVPL.

ORG-26217

Quick Find: Show found cell contents on Formula Bar

Show contents of found cell by Find tool in the Formula Bar

Ctrl + F to open Find tool, enter text to find. When a cell is found, show the content in the Formula Bar for convenient.

ORG-26437

Delete Hidden Rows - Beta2

Delete Hidden Rows is added in Reduce Rows dialog

When adding filter in columns, rows that don’t fit the filter condition will be hidden.

Then user can choose Worksheet: Reduce Rows...

Choose Reduce Method: Delete Hidden Rows to remove those rows.

Edit: Undo is supported.

ORG-26441

Delete whole row by missing or masked value in reference column - Beta2

Reduce rows by deleting whole row based on missing or masked value in reference column

Delete Entire Row checkbox is added when When Reduce Method is Delete rows with missing values or Delete rows with masked values.

If Delete Entire Row is checked, then user can set Reference Column and check if there is missing or masked value in that column and delete the whole row.

ORG-26446

Worksheet Insert Delete Protection - Beta2

Disallow insert/delete rows if worksheet in protection

For protection worksheet that has data connector or operation output, insert or delete row will be forbidden.

ORG-26442

Worksheet Query default to select rows - Beta2

Improve Worksheet Query tool and wxt X-Function to select rows by default

If all columns are selected, Worksheet Query tool and wxt X-Function will select whole rows instead of block cells now.

This is improved to work better with the newly improved wks.deleteRows() command.

E.g. wxt "col(B)>5000" sel:=1, used to select block cells that fits condition instead of the rows, therefore when user want to run wks.deleteRows() to delete those selected rows, a selection block remains which is anoying. Now row is being deleted, and no selection will be left.

ORG-7329

Auto update of links to variables - Beta2

Auto update of cell formula or column formula with reference to linked variables

E.g. in the following example, column K is calculated by column D/J. J actually are links to User Variable extracted during import. When import another data, J and K will be auto updated.

ORG-26742

Missing value should show as Empty in label cell

Cell formula calculates with missing value show as empty in label cell

Input a cell formula in a user-defined label cell, if it’s result is missing value, then Origin will show it as empty instead of “--”.

ORG-25603

Column Designation Group - Beta3

use wks.colN.group to specify which group the Nth column belongs

Usually the Y and Z column will belong to the X to the closest X column on the left. Origin 2023b allows user to specify which X group it belongs to.

E.g.

  1. Create a 5 column worksheet. Set column C as X column as well.

  2. → Columns will be broken into two groups. A, B in group 1 and C, D, E in group 2. See the column designation has 1 and 2.

  3. If user select column D to plot, it will use C as X.

  4. In Script window, run wks.col4.group=1 // press Enter key to execute it

  5. → Now D will be marked with D(Y1). If now select column D to plot, it will be plotted against column A as its X.

...

JIRA

SUMMARY

DESCRIPTION

DETAILS

ORG-25871

Connect more files into same book Beta2

Duplicate sheet with more files context menu” to import more files with same import settings

Import one data file with import customized. such as partial import, some post import script, etc.

Click the data connector icon and use the context menu to bring in more files to same book using same import settings.

ORG-26577

LT access to Post Import Script - Beta2

wks.dc.script$ for post import script

The following script sets up CSV data connect in new book with sample CSV data and run script to add mean label row to show mean values of each column of imported data.

newbook;
wbook.dc.add("CSV");
wks.dc.source$=System.path.program$+"Samples\Batch Processing\T275K.csv";
wks.dc.script$="wks.userparam(++Mean);
loop(i,1,wks.dc.c2) { wcol(i)[Mean]$="=Mean(this)";}";
wks.dc.import();

ORG-26498

HTML Connector Improvements - Beta2

Make it easier to import tables on web to workbook

  1. URL info. in Book title and left Navigation Panel.

  2. Table name will be imported as sheet name, renamed sheet name will be kept when reimporting.

  3. After import one table, list all available tables on left Navigation Panel

  4. Right click tables to easily import one or multiple tables to new sheets or active sheet.

  5. When import multiple tables into one sheet, then set table name to Table label row.

  6. Options context menu added on data connector icon to set partial column import using same syntax as CSV connector.

  7. Post Import Script. context menu added to add script when importing or reimporting data.

  8. Labtalk Improvements:

    1. wbook.dc.nav = 0 to hide left Navigation panel, wbook.dc.nav = 1 to show the panel.

    2. wbook.dc.url$ (readonly) to get url string

    3. wks.dc.add() to add table to active sheet

    4. wks.dc.optn$ to set partial import and script

Code Block
//import table _2 and then append table _9 as new columns in same sheet
newbook;
wbook.dc.add("HTML");
wbook.dc.source$="https://www.extremeweatherwatch.com/cities/boston/year-1993";
wks.dc.sel$="Tables/_2";
wks.dc.import();
wks.DC.flags=0; //0: append new columns, 256: append new rows.
wks.dc.add("Tables/_9");

//import multiple tables in same sheet, for each table only import 2:3 columns. 
//table name only from 2nd char on and show as calendar 3 char month format 
newbook;
wbook.dc.add("HTML");
wbook.dc.source$="https://www.extremeweatherwatch.com/cities/boston/year-1993";
wks.dc.sel$="Tables/_2|Tables/_3|Tables/_4";
Tree tr = wks.dc.optn$;
tr.partial_col$="2 3";
tr.nameoptn$="2:0";//Keep table name from 2nd char on. Use "2" to show 2nd char only
ToString(wks.dc.optn$);
wks.dc.import();
wlabel ty:="table" fmt:="CM0"; //show calendar month Feb, Mar, Apr in Table row

//import multiple tables into same sheet by appending row after row
newbook;
wbook.dc.add("HTML");
wbook.dc.source$="https://www.extremeweatherwatch.com/cities/boston/year-1993";
wks.dc.sel$="Tables/_2|Tables/_3|Tables/_4";
wks.dc.flags=256;
Tree tr = wks.dc.optn$;
tr.partial_col$="2 3";
tr.ToString(wks.dc.optn$);
wks.dc.import();

ORG-26038

Support multiple files per book when performing Clone Import

If need to repeat import multiple groups of files, then create a workbook connecting to a group of files, and use clone import to select other groups of files to import.

For Example:

  1. Create a Workbook with two sheets, the first sheet is connecting to “Group1 File 1.txt“, and the second one is connecting to “Group1 File 2.txt“.

  2. Click Clone Import button, and select following files:

Code Block
Group2 File 1.txt
Group2 File 2.txt
Group3 File 1.txt
Group3 File 2.txt

-->The first two files are imported into one new book, and others are imported into another new book.

ORG-26141

Drag and Drop to Import SVG files to Graphs and Layout

Support drag and drop SVG files into Graph/Layout to insert.

1.Drag and drop a SVG file into the Graph/Layout—will insert the SVG file.

2.Drag and drop SVG file to other places— will show error message.

ORG-26171

Insert SVG Web Image to Graph/Layout

Insert: Image from Web… supports url links with SVG image

E.g. https://upload.wikimedia.org/wikipedia/commons/5/53/MBTA_Rapid_Transit.svg

ORG-26106

Link to external SVG file

If image is linked, Origin project file size will be small and the image will auto update if external file changes

Right click SVG image in graph/layout to link/unlink

Right click image and choose Source File Path to change file path.

The Link status shows in Object manager in Graph Objects Mode.

The Link status and file location show on Status bar of Origin. Link status also show on Object Manager.

ORG-25582

SVG image resize & rotation

Resize and rotate SVG image inserted in graph/layout

Resize:

  1. Single click SVG image and drag to resize. Aspect ratio kept.

  2. Double click SVG image and on Dimensions tab of Object Properties dialog, uncheck Keep aspect ratio so user can change aspect ratio.

  3. On Dimensions tab, user can also enter position and size of object precisely.

Rotate:

  1. Single click SVG image twice to enter rotation mode. Drag the handle to rotate.

  2. Click SVG image on graph. The image object name shows on the left side of Status bar. E.g. SVG, SVG1, … Enter SVG.rotate=90 in Script window to change it.

ORG-26026

Default File Filter for File Selection Dialog

Added menu “Custom File Extensions…” to CSV Connector and Import Filter Connector to customize file extensions.

Steps to change the file extension for CSV Connector and Import Filter Connector.

1.Right click the app icon and select “Custom File Extensions…”

2.Change “File Extensions“ and click OK.

ORG-26391

Connect Multiple Files dialog improvements

Loading last used file info. in the dialog can be confusing and add All Files to File Type for CSV Connector.

1.Remove last File Names and Folder in Connect Multiple Files dialog if no longer valid.

2.Add All Files(*.*) item to Files of Type dropdown list for CSV Connector in Connect Multiple Files dialog.

ORG-26134

Import and parse text data from clipboard improvement

Improved paste Ctrl+V to check TAB, comma and semicolon.

Copy data from third-party software and paste it into Origin Worksheet will auto check TAB/comma/semicolon as delimiter.

ORG-26233

NetCDF Import Time Dimension Smarter Labels

If dense data is averaged into daily data, then matrix name will be show date info. only

1. We used to show a range, e.g. 2022-10-01 1:00 - 2022-10:01: 23:00 as matrix name for consecutive daily average, now we only set date to matrix name, like 2022-10-01.

  • If user further does intensity profile, column A would show such text string instead of date.

  • If user then plots the data against column A, it’s not plotted against date.

2. Now only show year as matrix name for consecutive yearly average, like 2022. Can set @MOL = 1 to turn it off.

ORG-26223

View Mode Improvements

Auto decide Image/Data mode depending on matrix size and keep modified view

If the matrix dimension (rows*columns) is small, data view will be used instead of image view.

  • System variable @VIM=400 is added minimum number of pixels to set view image on initial import

If View mode is modified by user, reimport will not modify the view mode.

  • Choose View: Data Mode and reimport data. The view will still be Data Mode.

ORG-26243

NetCDF Import Check Dimension of Single Value

Auto detect single cell matrix and import into worksheet column instead.

E.g. for a 3D variable such as Time[2000]*lat[1]*lon[1], Origin will auto detect it is a single cell data and import it into worksheet column.

ORG-26277

NetCDF 4D Variable Import

Import 1st level instead of middle level

E.g. for 4D variable such as Time[2000]*level[18]*lat[50]*lon[50], imports the 1st level.

In previous versions, middle level 10 is imported.

Level value will show as matrix sheet name.

ORG-25697

Improve Dimension Labels from NetCDF file - Z Dim

Set long_name of NetCDF data to matrixobject comment

E.g. a “long_name“ key, with value “Near-Surface Air Temperature“, after import, open Matrix - Set Dimension/Labels dialog.

--> On Z Labels tab, the Comments shoud be set to “Near-Surface Air Temperature“.

ORG-26244

Check to support 3D variable Add to Active Sheet

Support appending certain 3D Variable as Columns in same sheet.

E.g. If the structure of NetCDF 3D variable is “time[N]*lat[1]*lon[1]”, then show Add to Active Sheet item to Workbook Data Navigator for appending data to active worksheet.

ORG-26365

Structure Proection to prevent GUI sheet changes by DC import matrix into 4D

Not allow insert/delete/add sheet or drag sheet out into new book, when import 4D NetCDF variable into Matrixbook as 4D.

E.g. When there is a 4D variable V time[24]*lev[145]*lat[96]*lon[144]“, set selected path as “NetCDF/V[z][1:3][y][x]” to import, then then number of Matrixsheet will not allow to change.

ORG-26224

Support Importing multiple Slices as Matrix Sheets - beta2

Support importing 4D NetCDF to Matrixsheet as 4D.

Syntax:

NetCDF/v[z][5:7][y][x]

or

NetCDF/v[z][s][y][x]

E.g. When there is a 4D variable V time[24]*lev[145]*lat[96]*lon[144]“, set selected path as “NetCDF/V[z][1:3][y][x]” to import.

-->The time frames are imported into multiple Matrixobjects, while lev frames are imported into multiple Matrixsheets.

ORG-26438

Global Registry system variable to turn on high precision time - beta2

Set @ds =1 and import CSV data with higher precision and save project. Project level system variable @dsp will be set to 1970 for the opju.

Registry system variable @DS = 0 (default).

Set to 1 or any value > 0 will set new project @DSP=1970.

2018 was the only allowed value before for @dsp but there might be instrument data that is prior to 2018. So 1970 should be good enough. There should be no data file that need high time precision before 1970.

When sharing the opju with others with with @ds=0, the project will still keep the higher precision date since project level @dsp is 1970.

It’s also fine to share the 2023b opju with older Origin from 2019 on.

ORG-26473

HTML Connector with LT to setup URL - beta2

Added LT script: wbook.dc.URL$

The LT script “wbook.dc.URL$“ is used to get URL from connector, it is read-only.

ORG-26518

HTML Connector Navigator Pane - beta2

Support multiple select for HTML tables in Data Navigator, and import into active sheet.

1.Support select multiple tables in Data Navigator for HTML Connector: Hold Ctrl/Shift key to select multiple tables.

2.Support import multiple tables into one sheet: Right click one/multiple tables in Data Navigator and select Add to Active Sheet.

ORG-26458

Import Excel support Boolean type - beta2

Support Boolean type and copy paste or import data from Excel

When copy paste or import Excel data with boolean value TRUE and FALSE, Origin will bring it as numeric value 1 and 0 now.

ORG-26558

Connect more tables by Duplicating active sheet - Beta2

Added Connect by Duplicating Active Sheet to context menu for Data Navigator.

  1. Add Connect by Duplicating Active Sheet which will connect to new table with customization same as active sheet in same book.

  2. Rename Add and Connect Sheet(s) as Connect as New Sheet.

ORG-26710

SQL Editor: Double click Table Improvement

* will be highlighted when double clicking a table on left panel of SQL Editor

When double clicking a table in SQL Editor, select * from TableName will show on right side with * highlighted so that user can double click column nodes to replace * with corresponding column.

ORG-26709

Show Cursor Position in SQL Editor

Show cursor in SQL Editor so user knows see where it is going to insert

In the past, no cursor in SQL Editor, so when double clicking table or column on the left side, it was hard for user to tell where it will be inserted to.

ORG-26368

Make it easy to digitize from image on clipboard

Click Digitizer toolbar button will check if there is image on clipboard first

If there is image on clipboard, then clicking Digitizer toolbar button on Standard toolbar will prompt a message, asking user if they want to digitize image on clipboard.

If no image on clipboard, then it will show file open dialog for user to choose Image file.

No change if using Tools: Digitizer menu.

User can use 1st toolbar button to open image file or use clipboard image.

...

JIRA

SUMMARY

DESCRIPTION

DETAILS

ORG-25989

Open File Location from Messages Log Should Select the File

Make it easier to find the exported file in folder

  1. Export a graph.

  2. Choose Open File Location from the context menu in Messages Log

– – > the folder should be opened with the very file selected.

ORG-25785

Worksheet Export to Excel Improvements and Issues

We add new X-Function to export as Excel and call it expxls

We add new X-Function to export as Excel and call it expxls

ORG-26029

old LT code broken due to LTXF_FROM_GUI_PROMPT removed from VC code

New design for LT script to open XFs dialog.

-d: allow fname and path and allow last used theme
-dg: no fname and path and allow last used theme
-dm: no fname and path but no last used theme

Example:

  1. Set path$

  2. Code Block
    string fname$="C:\temp\test.dat";
  3. New a Workbook and run.

  4. Code Block
    expasc -d;
  5. -->File Path is auto set, and last used theme is used.

  6. Close the dialog and run.

  7. Code Block
    expasc -dg;
  8. -->File Path is not used, and last used theme is used.

  9. Close the dialog again and run.

  10. Code Block
    expasc -dm;
  11. -->Both File Path and last used theme are not used.

Change all export XFs Menu from -dm to the new -dg

ORG-26216

SVG Export need option to convert fonts to path

Add convert text to outlines checkbox in expg2img dialog for EMF and SVG

After check the checkbox, graph exported as SVG is like that we temporarily set @to=1 and @tob=0.

When you open the file in Notepad, you will not find the text-drawing elements <text>/<tspan>, but you will find many <path>elements. These <path> elements are which does not depend on the presence of particular fonts even when text exists in the graph.

ORG-26522

Show Analysis marker for graph export - Beta2

System variable @upa added

System variable is added to control export and graph sharing. It works for simple graph export and copy as image.

0 (default) : hide analysis marker

1: show analysis marker

ORG-26542

Export 16bit gray scale with color palette to PNG

Image window with text and other vector graph objects can also be exported to EMF from LT using expG2Img.
The EMF will retain the vector objects and scale with better quality.

ORG-26815

GUI and LT for export to PDF with MS print to PDF

  1. We can use the following script to generate PDF file

Code Block
print -pdf fname$;

2. Add PDF to Simple Graph Export

ORG-26809

Export Notes to Webpage should better show file location hint

Origin will show hint about the exported file in Message Log after we export notes to webpage. We could open the file directly or open file location.

...

JIRA

SUMMARY

DESCRIPTION

DETAILS

ORG-26525

Copy Transposed Table - Beta2

Copy Table from result sheet as transposed table (text) to clipboard

Makes it easy to copy transposed table and paste to other places

ORG-23281 S2

More Statistical tools to support significant expression (p<0.0001) when extreme small P value

More Statistical tools like Hypothesis Testing and Nonparametric Tests to support significant expression (p<0.0001) when extreme small P value

ORG-25957 & ORG-25992

Support Missing Values and Cumulative Counts in Discrete Frequency

  1. Origin2023b adds Exclude Missing Values checkbox under Case Sensitive. It is checked by default. It should exclude both missing values and empty values.

  2. Origin 2023b adds Cumulative Count checkbox under Count.

ORG-26337

Browser Graph left panel improvement after analysis (beta2)

After doing Gadget or Analysis, not add analysis markers, tags and fitted curves as new entries in left panel

System variable @BGA added. Default 0 so after doing analysis with tools or gadget, no entries related to analysis markers, tags and fitted curves show on left panel since left panel should only lists plots to browse.

E.g. Use Quick Peaks gadget to tag peaks in browser graph. Tags was added as entries on left panel

Fit curve with plot in browser graph. Fitted curve was added as entry on left panel.

ORG-25674

Allow Setting Default Line Width for Fitting

Support changing ReportFit.otpu and FitPreview.otpu to set defeault line style and width

Set customized line style and width, save template as ReportFit.otpu or FitPreview.otpu

ReportFit.otpu will effect the fit line in the report graph

FitPreview.otpu will effect the fit line in preview panel of NLFIT dialog

...

JIRA

SUMMARY

DESCRIPTION

DETAILS

ORG-25706

Statistics on Whole Sheet - Beta2

Statistics on all columns of a sheet

Statistics: Descriptive Statistics: Statistics on Whole Sheet… menu added to do statistics on numeric columns.

Input is whole sheet so if new data with more columns are imported, the the output will update accordingly.

In result sheet, each column’s stats show in a row, user can also click row header(s) to create box chart, histogram, etc. for selected data.

ORG-25717

Customize Statistics info in Scatter Matrix

Customize Pearson’s r and Adj. R-Aquare Label

Custom Pearson’s r Label and Custom Adj. R-Square Label controls are added under Additional Statistics node in Plot Scatter Matrix dialog, to customize the text and numeric display of Pearson’s r and Adj. R-Square .

...

JIRA

SUMMARY

DESCRIPTION

DETAILS

ORG-26557

X-Function wlabel function to set display format of column label row - Beta2

There is only GUI way to right click label and set its display format.

New X-Function wLabel to set display format of column labe row

  • wlabel type:=L fmt:="*3";

  • wlabel ty:=C rt:=1;

  • wlabel ty:="File Date" fmt:="yyyy-MM-dd HH:mm";

  • wlabel ty:=D2 fmt:=".2";

  • wlabel ty:="My Time" fmt:="THH:mm";

  • wlabel ty:=MyParam ex:=show;

  • wlabel ty:=MyParam ex:=clear;

It’s useful to add in Post Import Script, etc.

ORG-25792

Support listing StringArray on LabTalk Variables and Functions dialog

Show StringArray variable in the LabTalk Variables and Functions dialog

In Script Window, select menu Tools: Variables to open the LabTalk Variables and Functions dialog. A new checkbox “StringArray” is added, select it can show available StringArray variable in current project.

ORG-26063

LabTalk script to set Colormap Transparency

Add a new command to set colormap transparency

Syntax: layer.cmap.transparency

ORG-25853

LabTalk Countif function support simpler condition

Improve Countif etc. function to support simpler condition

In previous versions, the function needed a condition with input range like countif(col(A), "col(A)>10"). Now it has been made simpler and the input can be written as countif(col(A), ">10"). It’s also supported for other if functions including Sumif, Averageif, Maxifs, Minifs.

Code Block
countif(col(A), "boston")=;
countif(A, 2)=;
countif(A, "!=2")=;

ORG-25837

LabTalk time functions support elapsed time period

Time functions add optional argument to return elapsed time period

New optional argument adds to time functions to return elapsed time period, includes Hour(d[,n]), Minute(d[,n]), Second(d[,n1,n2]).

Code Block
double dTime = Time(25:30:21);
Hour(dTime, 1)= ; //25
Minute(dTime,1) =; //1530
Second(dTime,1,1) =; //91821

ORG-26293

LabTalk Doc method to find a page

LabTalk doc method to return page short name from long name

A new method is added to Doc object to return page short name from it’s long name.

Syntax: doc.FindLN(strRegister, strLN, windowtype)

  • Return number of page windows that match the long name string

  • strRegister: output to which string register

  • strLN: Long name to search

  • windowtype: 2 = workbook, 3 = graph, 5 = matrix book

Example: int nFound = doc.FindLN(A, "some name", 2);

ORG-26316

LabTalk function to split RGB value

Add a new function rgb() to split RGB value

A new function rgb() is added to split RGB value. It will be very useful for getting separate RGB value from image type matrix cell.

Syntax: int rgb(int val, string channel)

channel can be “r”, “g”, “b”, “a”

ORG-26328

LabTalk support negative index for special point

Support negative index for special point when using set/get command

Example: set %C -1 -c 2;

Note: -1 for last data point, -2 for first data point

ORG-26440

LabTalk command to delete hidden rows in worksheet - Beta2

wks.DelHidden( )

1st argument = 0 (default) is to delete rows, 1 to delete columns. 2nd argument 1 to support undo after delete.

E.g.

  • wks.delhidden(0); or wks.delhidden(); //delete hidden rows

  • wks.delhidden(1); //delete hidden columns

  • wks.DelHidden(0,1); //delete hidden row with undo support

ORG-26443

LabTalk command to delete selected rows in worksheet - Beta2

wks.DeleteRows(), wks.DeleteRows(0),

Old wks.deleteRows(rowBegin[,numRows, colBegin, colEnd]) can only be used to delete specified range.

Improved it in Origin 2023b to add a new default wks.deleteRows(0) to delete current selected rows:

wks.deleteRows(); or wks.deleteRows(0); //delete without undo

wks.DeleteRows(0,1); //delete with undo

ORG-26469

Labtalk command to reorder columns in worksheet - Beta2

wks.reorder(arg1, [arg2])

arg1 = -1: reverse current order

arg1 = column index, arg2 is its new index, similar to layer.Reorder(From, To)

arg1 = dataset, no arg2: allow for complete control, similar to OC Worksheet::ReorderColumns

Examples:

Code Block
wks.reorder(2,5) //moves 2nd column to be the 5th column
wks.reorder(2, 0) //moves 2nd column to be the last column
wks.reorder(2,-1) //moves 2nd column to be next-to-last column
wks.reorder(0, -1) //moves the last column to be next-to-last column
wks.reorder(-1, 1) //moves next-to-last column to be the first column

//to swap 2nd column and 4th, use
dataset vv = {1,4,3,2};
wks.reorder(vv);

ORG-26199

LabTalk command for removing all escape code from Text objects - Beta2

Add a new command to remove escape code from text objects

A new command is added to Label object to remove escape code. If \p(), \f(), \c() surround the entire text label content, then the escape code will be removed.

Code Block
label -fp name; // single text 
label -fpp *;   // for layer

ORG-26497

Improvements of LabTalk OGS and CNF files in Code Builder - Beta2

Coloring and right click to run selected lines in Code Builder

For OGS file

  • Color Section name with a light peach background by default to make it stand out.

  • Context menu Executed Selected Lines added when right-click.

For CNF file, coloring is supported

ORG-26782

Month() , Day() & Year(), WeekdayDame() YearName() return improvements for invalid date

Return missing value (--) or blank instead of the old -1

We used to return -1 for invalid date input, but that will cause issue when customize the display.

E.g. If column A contains date, and user set column B’s formula to be Text(Month(A), "##")$, which means get month numbers from date in column A and format the display to show two digits, e.g. date in Jan will show 01. For invalid and empty date in column A, -01 will show.

ORG-26673

wks.db object for Database Import - Beta3

Add a new property to wks object for database import

Syntax

  • wks.db.sql$, wks.db.conn$, wks.db.odbc

  • wks.db.test(n, strErr$), n = max number of records to get, return number of records. Return negative code if error, strErr$ contains the error message

  • wks.db.run(strErr$), if Select, then import, otherwise execute to db, strErr$ may have error message

  • wks.DB.export(filepath, optn), if filepath not specified, then it will do update using current connection string. optn default=0, bit1 = skip colum, bit2 = skip row

Example

  • Insert Record

    Code Block
    wks.db.conn$="Driver={SQLite3 ODBC Driver};Database=C:\Users\dev\Downloads\hawaii.sqlite";
    wks.db.sql$="select * from station where name like 'bb'";
    if(wks.db.test(1)==0) {
    	wks.db.sql$="INSERT INTO station VALUES('aa','bb', 21.4,-157.9,152.7)";
    	wks.db.run();
    	type "name = bb inserted";
    }
    wks.db.sql$="select * from station";
    wks.db.run();
  • Remove Record

    Code Block
    wks.db.conn$="Driver={SQLite3 ODBC Driver};Database=C:\Users\dev\Downloads\hawaii.sqlite";
    string ssql$="select * from station";
    wks.db.sql$=ssql$;
    wks.db.odbc=1;
    wks.db.run();
    wks.db.sql$="select * from station where name like 'bb'";
    i=wks.db.test(100);
    type "name = bb has $(i) records";
    wks.db.sql$="delete from station where name like 'bb'";
    wks.db.run();
    wks.db.sql$="select * from station where name like 'bb'";
    i=wks.db.test(100);
    type "after delete, name = bb has $(i) records";
  • Export all sheets in book

    Code Block
    string dbName$=page.LongName$ + ".sqlite";
    string strPath$ = %Y%(dbName$);
    strPath$=;
    doc -e LW {
    	type "Adding [%H]%(wks.Name$)";
    	wks.db.export(strPath$);
    }

ORG-26826

LT color function supports converting Red color in high byte

LT color function supports converting Red color in high byte

It’s more common to convert Red color in high byte.

Syntax: color(r, g, b, 2)

Note: Original color(r, g, b, 1) convert Red color in low byte.

Code Block
color(157,29,29,2) = 10296605 = #9D1D1D
color(157,29,29,1) = 1908125 = #1D1D9D

ORG-26734

Support Defining Variables Across Sessions

New dialog provides to define variables across sessions

In the Script Window, select menu Tools: Define Variables Across Sessions to open LabTalk Variables Across Sessions dialog. User can define variables here, and the variables can be called when open another session. Note that the variables will be saved in the user_vars.cnf file in the User Files folder.

ORG-26887

Labtalk method to download a template

Added a labtalk function doc.download() to download template

Code Block
err = doc.download("RaisedReliefMap.otpu"); //download by file name

or

Code Block
err= doc.download(939); //download by fid

...

JIRA

SUMMARY

DESCRIPTION

DETAILS

ORG-25668

Floating child window outside main window

Drag child window outside Origin’s main window.

  • Move child windows outside main Origin window.

    • Menus in floating window

    • Customizable toolbar buttons in floating window.

    • Dockable Object Manager window in floating window

  • Window: Float Window submenus to disable this feature, or set different floating behavior.

    • Independent - minimize/restore main window will NOT minimize/restore float window

    • Synchronized - minimize/restore main window will minimize/restore float window.

    • Disable - turn off the feature

  • Window: Retract Floating Windows (Ctrl+Shift+F9) to bring all floating windows in current folder back into main window.

  • Window: Float Active Window (Ctrl+F9) Make active window floating in last used 2nd monitor.

ORG-26669

Retract Floating Window To Original Folder or Current

Labtalk command to retract all floating windows to original folders or current folder

Manually drag a floating window back to workspace will always move the window to current folder.

The following commands only controls how floating windows are retracted by Script.

  • document -fma //retract all floating windows to their own folders

  • document -fmac; //retract all floating windows to the current folder

ORG-25936

Keep floating window when switching folders - Beta2

When switching to another folder in Project Explorer, the floating window still shows

Float window will show when switch to another folder in Project Explorer.

  • Pin button shows on title bar which indicate float window auto pins.

  • When retracting window to main workspace, it auto unpin it.

  • Folder info. shows in floating window title if current folder isn’t the floating window’s own folder.

  • Go to Original Folder toolbar button and context menu added to easily return to its own folder

  • User can easily move a floating window to current folder by dragging it back to the workspace.

ORG-25936

Keep Pinned inside window when switching folders - Beta2

A system variable to allow pinned window show when switching folders

In previous Origin, pin a window only locks it in its own folder.

In Origin 2023b, pin a window will lock it to workspace so it will stay when switching to another folder. Set system variable @pws=0 to roll back to old behavior

When the pinned window isn’t in its own folder,

  • folder info. shows in pinned window title.

  • Go to Original Folder toolbar button and context menu added to easily return to its own folder

  • Unpin will make the pinned window disappear in current folder

ORG-26380

Indicate Floating Window in PE - Beta2

Use Different Color on Window Name to indicate Floating

Two new system variables to set color for floating window in PE

@fwca floating window color (Active), like @fwca=color(0,255,0,1)

@fwci floating window color (Inactive)

ORG-26121

ORG-25941

Menu and Toolbars in Floating window

Mix of Menus and toolbars in Floating window

  • Choose Preference: Customize Floating Window Menus to customize menus

  • Choose View: Toolbars: Toobars tab, add or move button in Floating Graph, Floating Layout, Floating Matrix, Floating Workbook to customize toolbar

  • System variable @FWTB=0/1 (1 by default) to hide/show the menu and toolbar

ORG-25961

Default Toolbar buttons for Floating Toolbars

For Floating window like worksheet, graph, matrix and layout, support some toolbar button

Choose View: Toolbar… check the toolbars starting with Floating… to customize the toolbar.

  • Drag buttons to adjust orders

  • Alt+Drag a toolbar button out of Floating… toolbar back to the dialog to to remove it from Floating… toolbar.

  • Add more buttons to Floating… toolbar. E.g. how to add Print button on toolbar for floating graph widnow.

    • Choose View: Toolbar…

    • Check Floating Graph on Toolbars tab. So a Floating Graph shows in Origin workspace

    • Go to Button Groups tab, and select Standard in Groups list.

    • Drag the Print button onto the Floating Graph toolbar in workspace.

    • Closing the Customize… dialog.

    • Now make a Graph window float outside workspace. The Print button will be on the toolbar inside the floating window.

ORG-26459

Floating window actives together with Origin main workspace - Beta2

When activate or minimize main workspace, floating window activates or hides together

System variable @FWA to control the behavior.

@FWA=1 (By default), floating windows should be shown together with main window (including minimize action).

@FWA=0, floating windows and main window work independently.

ORG-26530

Include floating windows when toggle child windows - Beta2

Ctrl+Tab or Ctrl+Shift+Tab should include floating windows

When with @fwa=1 (default),

when using Ctrl+Tab or Ctrl+Shift+Tab to toggle windows in Origin, the floating windows are included.

ORG-26416

Object Manager in floating window - Beta2

Object Manager inside floating window

  • Button to turn on/off Object Manager (OM) inside floating window.

  • Better default on/off setting for floating window

    • If OM in main frame is docked and shown, when floating a child window, the OM will show inside floating window.

    • If OM in main frame is turned off or not docked, when floating a child window, the OM inside it will not show.

  • OM in both main frame and floating window works for active window.

  • @FWOM for default position of OM in floating window. 0 = hide, 1,2,3,4,5 = top,left,rigth,bottom,float

ORG-25778

Scale child windows in Origin Project Improvements - Beta2

Unmaximized Origin project saving and opening in different monitor resolutions should scale properly

In Previous versions of Origin, if Origin workspace isn’t maximized on a lower resolution screen and saved as project file (OPJU), and later opened on a monitor with Higher resolutions, the workspace and child windows inside may look tiny and squeezed.

This is improved in Origin 2023b, so that no matter saving on lower resolution and open on higher resolution or vice versa, the workspace and child windows will scale fine.

New system variable @MFRLA added related to Save and loading OPJUs saved with non-maximized workspace

  • 2 (default): When saving on lower resolution monitor and opening on higher resolution monitor, it will resize so the workspace will NOT be tiny and squeezed. If saving on higher resolution monitor and opening lower resolution monitor, the size will only adjust if it does not fit (otherwise it will be left unchanged).

  • 1: Resize no matter saving on lower resolution monitor and opening on higher resolution monitor or vice versa. It fixes earlier versions issue of saving on lower resolution monitor and open in higher resolution monitor (see 0 below) but casues issue the other way around. If saving on higher resolution monitor (e.g. using only 1/4 of whole screen) and open on lower resolution monitor, Origin will resize to take 1/4 of whole screen. All child windows may look tiny and squeezed.

  • 0: Old behavior before Origin 2023b of no resizing at all and use info. in OPJU. Therefore if saving on lower resolution and opening on higher resolution, windows will be tiny and squeezed. No issue when save on higher resolution monitor and open on lower resolution monitor.

Note: No issue with maximized workspace saved and loaded on different monitor resolutions.

ORG-26681

Scale Minimized Window Positions

Minimized windows will not be squeezed together

Improve positions of Minimized Window when OPJU open in higher DPI so they are not overlapped.

ORG-26049

Script window remember zoom level

Keep the zoom level of font size in the Script Window.

In Script Window, input some text, then Ctrl + Mouse Wheel to zoom font size. Close it then reopen, the zoom level will be remembered.

ORG-26087

Want tooltip to show Long Name for minimum window

Want tooltip to show Long Name for minimum window

In Origin 2023b, tooltip will show Long Name when mouse hover over minimum window.

ORG-26089

Save Favorite Folder

Shortcuts in Favorite Folder Saving

In Origin 2023 and earlier versions, when a shortcut is inside a favorite folder, and you choose to save that folder as a project, but it fails to save the actual window.

Origin 2023b improved to save the actual window in the Favorite Folder Project.

ORG-26091

Object Size 2023b

  1. “Show Saving Size” is added to right-click Project Explorer empty space menu,

  2. “Linked File” is added to right-click inserted picture context menu.

1.

2.

ORG-26560

Support Arc Tool

In left toolbar, support Arc Tool in Line object fly-out. Draw an arc, click it, drag the anchor point to draw a large arc

ORG-25738

Duplicate Windows and Objects with Ctrl+Mouse Drag

Duplicate Window and Graph object by hotkey

In Project Explorer, support CTRL+Drag windows to duplicate in same/different folder

For Graph Objects in Graph/Worksheet/Matrix/Layout, support CTRL+SHIFT+Drag to duplicate multiple selected graph objects, system variable @CSDND to turn off

ORG-25795

Support ort theme file type in Transfer User File and Group Folder Manager

.ort files can be transferred to new version’s User Files Folder, and can be published to member PCs for the Group Folder Sharing configuration.

.ort files are node expand/collapse status configurations in analysis report sheets, see more information here:

https://www.originlab.com/doc/en/Origin-Help/Analysis-Rep-Wks-Cols (search for “Save Node Configuration”)