UN articolo recente della lista dei desideri ha chiesto un formato numerico che fosse una versione della notazione scientifica che utilizzava l'esponenziazione in apice invece dei separatori "e" computerizzati per potenze di 10. In altre parole, 3.4 × 10⁵ invece di 3.4e+5. Poiché le cifre in apice sono disponibili come caratteri Unicode, è possibile scrivere tali numeri come testo normale, senza la necessità di apici espliciti. Ciò significa che possiamo ottenere tali numeri su un asse con un formato di etichetta personalizzato.
Gli assi del grafico supportano da tempo formati di etichette personalizzate, che sono espressioni JSL in grado di produrre etichette di assi arbitrarie. Ecco un esempio che aggiunge "°F" alle etichette dell'asse y.

L'ho fatto selezionando Personalizzato come Formato nella finestra di dialogo Impostazioni asse.

E quindi facendo clic su "Formato personalizzato" per visualizzare una versione dell'editor di formule per creare questa semplice formula.

La formula per scientifico è più complicata ma rientra ancora nel quadro. Ho creato questa formula, che inizia con la normale notazione scientifica di JMP e quindi sostituisce le cifre dell'esponente con i corrispondenti caratteri in apice.
Local( {supers = "⁰¹²³⁴⁵⁶⁷⁸⁹", d, parts},
parts = Words( Format( value, "Scientific", width, dec ), "e" ); // split on e
Substitute Into( parts[2], "+", "", "-", "⁻" ); // ignore +, superscript -
For( d = 0, d <= 9, d++, // superscript each digit
Substitute Into( parts[2], Char( d ), Substr( supers, d + 1, 1 ))
);
if (value == 0, "0", parts[1] || " × 10" || parts[2]); // add x10 unless 0
)
Ecco un grafico che utilizza quel formato.

Infine, ecco l'intero script per il grafico, con il formato personalizzato come parte delle personalizzazioni degli assi e il filtro dei dati per mostrare solo gli stati superiori.
Open( "$SAMPLE_DATA/Corn Wheat Soybean Production.jmp" );
Graph Builder(
Transform Column(
"Maximum[Commodity Acres Planted][State,Commodity]",
Formula( Col Maximum( :Commodity Acres Planted, :State, :Commodity ) )
),
Size( 658, 487 ),
Show Control Panel( 0 ),
Variables(
X( :Year ),
Y( :Commodity Acres Planted ),
Group X( :Commodity ),
Overlay( :State )
),
Elements( Points( X, Y, Legend( 35 ) ), Smoother( X, Y, Legend( 36 ) ) ),
Local Data Filter(
Add Filter(
columns( :"Maximum[Commodity Acres Planted][State,Commodity]"n ),
Where(
:"Maximum[Commodity Acres Planted][State,Commodity]"n >= 4658000
)
)
),
SendToReport(
Dispatch( {}, "Year", ScaleBox,
{Min( 1999.5 ), Max( 2017.5 ), Inc( 10 ), Minor Ticks( 1 )}
),
Dispatch( {}, "Commodity Acres Planted", ScaleBox,
{Format( "Custom",
Formula(
Local( {supers = "⁰¹²³⁴⁵⁶⁷⁸⁹", d, parts},
parts = Words( Format( value, "Scientific", width, dec ), "e" );
Substitute Into( parts[2], "+", "", "-", "⁻" );
For( d = 0, d <= 9, d++,
Substitute Into( parts[2], Char( d ), Substr( supers, d + 1, 1 ))
);
if (value == 0, "0", parts[1] || " × 10" || parts[2]);
)
)
), Min( 0 ), Max( 15.5e6 ), Inc( 5e6 ), Minor Ticks( 4 )}
))
);