JMP 19 brings many improvements for Graph Builder. Here are a few of the most significant additions.
Constrained smoothers
The smoother element has a new method called P-Spline. It’s a cubic spline, just like the existing Spline method, but it’s parameterized in a way that better supports constraints. Monotonic trend curves are the most requested smoother feature, and now it’s possible – and then some. When you know that the nature of the response is cumulative or decaying but a smooth fit shows some wiggle, the new smoother constraints can minimize the distractions. For responses such as probabilities, you can use the minimum/maximum constraints to be sure the curve stays between 0 and 1.

An example with a couple of constraints in action.

Jitter options
The jitter options on the Points element have been expanded. The choice of direction (positive, negative, or centered) is now available for all jitter methods. Here’s the new Hex Grid jitter, which is more compact than a regular dot plot and can more closely reflect the underlying density for large samples.

Arrow charts
Arrow/vector charts are directly supported by the Line element in JMP 19. A new Connection option called Arrow takes care of the drawing. The real work is in the new Ordering option, which replaces Row Order. It adds a new Within Row choice, which generates separate lines (or arrows) for each combination of multiple X and Y variables.

Parallel Y axes
In response to perhaps our most requested Graph Builder feature, you can now have many Y axes attached to the same graph. In JMP fashion, all the axes are live and are assigned their own color by default to match their legend and content. The graphs will look confusing to many, but they’re essential in some process monitoring applications. By the magic of Graph Builder, any combination of element types is supported, though connected lines are most common.

Transform column scoping
Scoping addresses an issue that power users sometimes run into. Transform columns allow you to create temporary formula columns within Graph Builder. The complexity arises when the formula summarizes groups of rows, such as with the functions in the Aggregate group (which are implemented with functions like Col Mean()). In JMP 19, you have control over which rows are seen for the summarization: the whole table, just the rows Graph Builder sees (because of filtering), or even just the rows in each Graph Builder group panel and overlay level. Here is a CDF plot using a scoped transform column defined with Col Rank() and Col Number(). Thanks to the scoping, the same formula will reflect any data filter changes, row exclusions, or even a change of the Overlay variable.

New Col functions
Closely related to scoping, new aggregation functions have been added, following the existing convention of using the Col prefix:
- Col N Unique: Number of unique values.
- Col Score: The index of the current row’s value in the unique item list.
- Col At: The value at a given row position relative to the current group or row; a supercharged version of Lag().
- Col Sequence: The row position relative to the current group or row; a supercharged version of Row().
- Col Interpolate: Similar to the Interpolate() function but efficiently evaluates over a whole column and takes grouping into account
In addition, existing Col functions have been made more efficient when the expression being summarized is not a simple column reference.
Binomial confidence intervals
When the response variable has exactly two levels, the Line of Fit element will now use a binomial-aware confidence interval around the proportion estimate, which keeps the intervals within the 0 to 1 bounds.

And more
A few other items to be aware of:
- New properties allow more control over the padding around a graph, especially useful when exporting.
- Ordering a nested axis now applies to the axis as a whole rather than each variable independently.
- The new Forced Values column property can be used to keep placeholders on the axis for absent values.