Versions Compared

Key

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

Graphing

New Graph Types

...

JIRA

SUMMARY

DESCRIPTION

DETAILS

ORG-29592

Icon improvements on left panel of Plot Details dialog

Much easier to tell a plot is a single plot or belongs to a group

In the past, when open a complicated graph to customize plot, it’s hard to tell if a plot is a single plot, or belongs to a group. For grouped plot, some Tabs only show when 1st member in the group is selected.

In Origin 2025, a single plot is denoted by image-20240823-142637.png, a plot blonging to a group is denoted by alternatingimage-20240823-142656.pngimage-20240823-142923.pngicons

image-20240830-204700.png

ORG-29715

Grouping plots gets easier

Group nonadjacent plots and create multi-groups

Change of behavior and context menus changes in Object Manager to make it easier to group plots in a layer

  1. New behavior of Set as Group Begin and Set as Group End: Right click a member in a group of plot and choose Set as Group Begin or Set as Group End will break the current group into two groups. In the past, plots before Set as Group Begin or after Set as Group End would become isolated single plots.

  2. New Move as a New Group context menu: Select adjacent or non-adjacent plots in a group to move them into a new group. In the past, many steps were needed.

  3. Group non-adjacent single plots: For isolated single plots, no matter same plot type or not, ctrl+ select them, right click and choose Group to make a new group with 1st plot’s plot type.

ORG-27177

Data Slicer on Graph

Add data slicer to graph to filter data

Three ways to add data slicer on graph. Slicer is on graph so source worksheet will not be filtered.

  • Data: Slicer… menu

  • Click the old Data Filter button. //button in pressed stage if there is filter on graph. Click it again will remove all filters in graph. Ctrl+Z to undo.

  • Click the Data Slicer button on page level mini toolbar

image-20240730-154029.png

Basic usage

image-20241003-135750.pngimage-20241003-135818.png

More options when right clicking on filter. E.g. right click a text type filter and check Multiple Selection so instead of a dropdown list, user can pick multiple items in column.

image-20241003-140006.png

image-20241003-140757.png

Or right click to disable filter, delete filter or change filter to be another column

image-20241003-140818.png

Right click in blank area to add another filter

image-20241003-140851.png

Compare plots with different conditions

For single layer graph, use Duplicate Plot option to add duplicate plots in same layer with different filter conditions for each plot

image-20241003-135032.pngimage-20241003-135104.png

Or duplicate into multiple layers with different filter conditions for each layer

image-20241003-135240.png

image-20241003-135340.png

Add Filter to control all layers in graph

For multi-layer graph, user can add filter to page level (check Common Filter for All layers/Plots) or to layer level (uncheck it)

image-20241003-134522.png

Set condition will affect all layers

image-20241003-134728.png

ORG-29671

Easy way to change all plot’s X data in a layer or whole page

Change X context menu on Layer and Page level

Right click in blank area within layer and choose Change X to change all plot’s X to be certain column.

Right click outside all layer frames and right click to change all plots in all layers' X to be certain column.

Note: There was only Change X context menu on when right clicking on a plot. User would have to click each plot to change the X data or go to Plot Setup dialog to change so. It’s cumbersome.

ORG-28659

Error bar tooltip

The error bar tooltip provides numerical details of the range of uncertainty around data points in a graph.

The x and y error info shows when mousing over data points plotted with error bars, or when mousing over error bars.

image-20240531-201244.png

ORG-28723

Swap layers or swap graph objects

Select position of two layers, or two graphic objects

Swap position dropdown list is added on mini toolbar if two layers, or two graphic objects are selected.

It also shows on Object Edit toolbar on right side of workspace.

E.g. shift+select two layers and click the button.

image-20240716-082625.png

ORG-28721

Show Layer info in the Graphs list box

List Layer numbers in parenthesis after corresponding Graph name

This helps user to associate graphs and its layers in preview window when merging graphs

image-20240604-143759.png

ORG-29082

Add Note for Layout Window

Adding notes for layout window from Object Manager

Notes could only be added to graph window in Origin 2024b. In Origin 2025, notes can be added to layout window as well.

With Layout window active, click the Add Notes button on top of the Object Manager.

image-20240603-191939.png

If there is notes for a layout window, there will be + inside the icon. Click it to read the notes.

ORG-28263

3 List orders in Batch Plotting Dialog

More ways to sort available books and sheets in Batch Plotting dialog

There was no sorting order option in Batch Plotting dialog.

Before Origin 2024b, books show in creation order and sheets show in appearance order. In Origin 2024b, both books and sheets show in alphabetic order.

In Origin 2025, 3 sorting modes are added. Click the column header to toggle them.

  • Unsorted (default, old behavior before Origin 2024b)

  • Sort ascending (default in Origin 2024b)

  • Sort descending (similar sorting criteria as above type 2, but descending).

Note: Sheets in same book as source graph always show on top.

image-20240619-162850.pngimage-20240619-162938.pngimage-20240619-163002.png

ORG-28297

Plot Menu for Image Window

Support plot menu for floating image window.

Float the image window to the other monitor then check the Plot menu

ORG-29079

Remove the limitation of 16 color toolbar icon for custom toolbar

Supoort 32bit color toolbar icon in custom toolbar

Before Origin2025, only 16 color toolbar icons are supported. If you choose a 24bit or 32bit color image for custom toolbar and restart Origin, you will get Button group bitmaps must be 16 color message.

ORG-29031

Histogram Auto Binning improvement for arithmetic sequences

Histogram Auto Binning improvement for arithmetic sequences

When count(unique(input))<=10, we can sort the unique(input) and check if they are arithmetic sequences. In an arithmetic sequence, the difference between consecutive terms is always the same. If they are arithmetic sequences, assume the difference between consecutive terms is delta, bin size=delta, bin begin should be min-delta/2, bin end is max+delta/2.

Implemented in Origin2025.

ORG-16510

Smartly adjust ticks when zoom in the graph

Improve the rule of showing ticks to show better ticks values when zooming in

In Origin2025 before, improve the below case that sometimes too few ticks sometimes too many ticks

  1. Zoom in graph with hotkey/red dot

  2. Apply scale of ROI in image to graph

ORG-29207

Save To Cloud support for project files

Support saving project to cloud

Can save project to cloud by menu: File: Save Project to Cloud…

If there is existing opju file with same name on cloud, for OneDrive/SharePoint, will show dialog to ask replace or not; for Google Drive, save it directly.

ORG-29595

Enable Template Library Toolbar Button for Image Window

When image window is active, the menu “Plot → Extended Templates“ and Template Library button is available.

Import an image to image window then choose the menu “Plot → Extended Templates“ or Template Library button.

...

JIRA

SUMMARY

DESCRIPTION

DETAILS

 ORG-29230

 Labtalk User-Defined and System Parameter Rows

 New LabTalk command wks.readonly(“D#”, -1); that supports User-Defined and System Parameter Rows

 When in the Scripts Window, you can run wks.readonly(“D#”, -1); (where # is the user defined row). With this command, it can remove the corresponding row's property. This allows the row to access the same properties as other rows.

ORG-23494

Clear Storage in Page

LabTalk command to clean up unnecessary property, section, tree in page storage

Set value, section or tree to <DEL> to clean up storage.
With page active, run page.info.= to check storage info.

If there are tree, section, values you’d like to clean up, run

page.info.SYSTEM.PAGE.DISPLAY.NUMERICSEPARATORS=<DEL>; ///cleanup a value

page.info.SYSTEM.LEGEND=<DEL>; ///cleanup a section

page.info.Spacing=<DEL>; ///cleanup a tree (tree node case sensitive)

ORG-28831

More Data Manipulation Functions

DropNA() and Reverse() functions are added.

Added under Functions → Data Manipulation in Set Column Values dialog.

dataset dropNA(dataset vd)

  • Remove missing value or empty value rows in dataset

dataset reverse(dataset vd)

  • Return the reverse order of the column.

ORG-29179

Updated WeekNum() Function to Support European Week Numbering System

WeekNum() added with 3rd parameter

int WeekNum(double d[, int n1, int n2])

The 3rd parameter int n2 decides which week is the first week of the year.

  • 1 (default) - The week containing January 1 is the first week of the year.

  • 2 - European week numbering system ((complies with ISO standard 8601, section 3.17)), week that has at least four days in the new year is 1st week..

E.g. January 1, 2022 is on Saturday, so WeekNum(1/2/2022, 1,1) will return 1, while WeekNum(1/2/2022, 1,2) will return 52.

Such parameter is also added to datepart() function

ORG-29128

New worksheet property wks.ColXY$

To set or get column designation in worksheet

Using Labtalk property to set leading and trailing columns' designations and repeat designations in the middle. E.g.

  • wks.colxy$=xy - set first column x, second y. It didn’t set designations further on so will be all Ys

  • wks.colxy$=n(xy) - set first column as no designation, then repeat xy pair for remaining columns

  • wks.colxy$=nl(xy)z - set first column as no designation, second column as label, last column z, the middle columns will repeated xy pairs.

See the table on Set Column Designation page for letters used to set designations e.g. E for y error, ….

ORG-28829

Delete Named Range

Add option -rn in Delete command to delete named range

There was only delete -r to delete named range and regular data range variables. New -rn option is added to delete named ranges only.

Syntax

delete -rn [name] [scope] /// name support wildcard, scope can be 0(Sheet), 1(Book), 2(Project)

Number of Named Range deleted will be dumped after executing it.

Examples:

  • del -rn //delete all named ranges in project

  • del -rn alpha* 1 //delete all named ranges in book scope starting with alpha

Tip: Use list -rn to view existing named ranges.

ORG-29751

LabTalk command to duplicate plot in same layer

Layer -pd copies plotindex

E.g. plot a scatter graph. Run the following script

layer -pd 2;

Two copies of the plot is made and grouped so there are 3 plots in the layer.

This is mainly used for data slicer in graph so user can set different filter condition of each plot.

Origin C

JIRA

SUMMARY

DESCRIPTION

DETAILS

 ORG-29208

Support specifying rotation center in Graphic object’s Rotate() function

2nd argument for rotation center is added

GraphObject:: BOOL Rotate(double dAngle, point *ptCenter, BOOL bUndo = FALSE); 

E.g. Add the following Origin C code in Code Builder.

void test_rotate(string type, int x, int y, int degree)
{
GraphLayer ml = Project.ActiveLayer();
point pt(x, y); //specify x, y in pixel
GraphObject gr = ml.GraphObjects(type);
BOOL bUndo = true;
gr.Rotate(degree, &pt, bUndo);
}

In Graph window, add a rectangle object, object name is Rect

In the Scripts Window, execute the follow to rotate the rectangle 45 degrees based on rotation center at (2000px, 3000px),
test_rotate("Rect", 2000, 3000, 45);

ORG-28612

Supports creating a dialog with CEF HTML control using X-Function newHTML

variable cef is added and default checked

newhtml; //create a new CEF HTML dialog, which created an IE HTML dialog in previous version

Notes:

  1. When cef = 1, jquery will be disabled, since using cef requires jquery.

  2. Set @cefdebug=1, then create a CEF HTML dialog, right-click on the dialog and select Inspect toturn on CEF debug mode.

newhtml -d; //open X-Funtion dialog to see more detials

ORG-28088

Provide OC function to retrieve google map image as App

Introduced two OC functions to retrieve google map image.

Code Block
// OImage.h
OC_API LPVOID LoadMapTiles(LPCSTR lpcszUrl, double dMinLongitude, double dMaxLongitude,
        double dMinLatitude, double dMaxLatitude, unsigned int nZoomLevel,
        MapTilesOptions* lpOptions);

OC_API LPVOID LoadGoogleMapTiles(double dMinLongitude, double dMaxLongitude,
        double dMinLatitude, double dMaxLatitude, unsigned int nZoomLevel,
        LPCSTR key, string* pstrCopyright, LPCSTR request_header, LPCSTR request_data,
        bool bConvertToWGS84, LPCSTR session_token);

...