EIN letzten Artikel auf der Wunschliste fragte nach einem Zahlenformat, das eine Version der wissenschaftlichen Notation mit hochgestellter Potenzierung anstelle der computerisierten "e" -Trennzeichen für Zehnerpotenzen war. Also 3,4 x 10⁵ statt 3,4e+5. Da hochgestellte Ziffern als Unicode-Zeichen verfügbar sind, ist es möglich, solche Zahlen als normalen Text zu schreiben, ohne dass eine explizite Hochstellung erforderlich ist. Und das bedeutet, dass wir solche Zahlen auf einer Achse mit einem benutzerdefinierten Beschriftungsformat erhalten können.
Diagrammachsen unterstützen seit langem benutzerdefinierte Beschriftungsformate, bei denen es sich um JSL-Ausdrücke handelt, die beliebige Achsenbeschriftungen erzeugen können. Hier ist ein Beispiel, das den Beschriftungen der y-Achse "°F" hinzufügt.

Ich habe es geschafft, indem ich im Dialogfeld "Achseneinstellungen" als Format "Benutzerdefiniert" ausgewählt habe.

Klicken Sie dann auf „Benutzerdefiniertes Format“, um eine Version des Formeleditors aufzurufen, mit der Sie diese einfache Formel erstellen können.

Die Formel für wissenschaftlich ist komplizierter, passt aber immer noch in den Rahmen. Ich habe diese Formel erstellt, die mit der regulären wissenschaftlichen Notation von JMP beginnt und dann die Ziffern des Exponenten durch die entsprechenden hochgestellten Zeichen ersetzt.
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
)
Hier ist ein Diagramm, das dieses Format verwendet.

Schließlich ist hier das gesamte Skript für das Diagramm, mit dem benutzerdefinierten Format als Teil der Achsenanpassungen und des Datenfilters, um nur die obersten Zustände anzuzeigen.
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 )}
))
);