# Crossplot reference

Plot any two numeric LAS curves, then inspect, colour, filter and select the samples.

Danila Karnaukh | v4 | 2026-09-29

## Load data and choose axes

Use Choose LAS file, drag one file into the drop area, or select Try with sample data. LAS 1.2 and 2.0 are supported, including WRAP YES; files are limited to 25 MiB, 250,000 rows and 5,000,000 numeric values. This is the well-log LAS format, not LiDAR LAS.

Choose the horizontal X and vertical Y curves. Units are taken directly from the LAS. Swap axes exchanges both curves and their scale settings. Changing a curve clears its manual limits and the selection.

## Axis tab

Linear and logarithmic scales are available independently. Blank limits mean Auto. Min and Max are display endpoints: X Min is left, X Max is right; Y Min is bottom, Y Max is top. Set Min greater than Max to reverse an axis. For density increasing downwards, set Y Min to 2.75 and Y Max to 1.95.

Logarithmic limits must be positive. Missing pairs and pairs with a non-positive value on a logarithmic axis are excluded. The counters and Verify plot report these separately. Drag a rectangle to zoom; Reset view or double-click restores the configured limits. Zooming does not change the stored axis settings.

## Points and colouring

Points offers square, circle, triangle, diamond, plus and cross markers; size 1–20 px or Auto; and a uniform colour. Colouring can use any numeric curve with Viridis, Plasma, Ocean, Warm, Blue–white–red or Greyscale. The palette can be reversed.

Blank colour limits use the full LAS curve, independently of zoom, selection or filtering. Manual limits clamp outliers to the endpoint colours. Descending limits reverse the value mapping. Missing colour values appear grey; selected points retain the selection colour. A colour curve is not an automatic lithology or fluid classification.

## Selection

Choose Select points, then draw a lasso or click a sample. Replace, Add and Remove control membership. Esc cancels a gesture. Selection membership is stored by the original zero-based parsed row number, not depth or position on the screen. A point on the lasso boundary is included. Hidden selections can remain after filtering or zooming.

## Filtering

Choose one curve and enter one or two conditions; both conditions must pass (AND). Supported comparisons are >, ≥, <, ≤, = and ≠. Blank condition fields are ignored. Missing filter values fail every comparison. Apply filter commits the draft; Clear filter removes it. Multiple filter curves and OR are not supported.

## Regression

| Model | Minimum distinct X values | Fit space |
| --- | --- | --- |
| Linear | 2 | Original Y |
| Polynomial degree 2 / 3 / 4 | 3 / 4 / 5 | Original Y |
| Power | 2; every selected X and Y must be positive | ln(Y) against ln(X) |
| Exponential | 2; every selected Y must be positive | ln(Y) against X |

Enable the fit in Regression. It uses selected source rows that pass the filter, regardless of whether they are in the current viewport. Display scales do not transform the fitting data. R² is reported in original Y units, including for power and exponential fits; it is undefined for constant Y. A failed fit shows a reason instead of inventing a result.

The line uses the selection colour and a thickness of 1–20 px. It extends across the current view, so portions outside the selected data are extrapolation.

## Save, restore and export

Save settings stores the curve references, axes, viewport, point style, colour mapping, filter, selected row numbers and regression settings in JSON. Load the same LAS before Load settings. Export PNG captures the current view with axes, legends and the fit summary. Verify plot shows the applied scene and counts. No raw LAS values are embedded in settings files.

[Settings and API reference](../scene-format/index.html) · [Run density–neutron example](../../crossplot/index.html?example=density-neutron) · [Run density–sonic example](../../crossplot/index.html?example=density-sonic)
