Wenn ich nur Graph Builder mit Seite mache, kann ich die Log-Skalierung mit JSL ohne Probleme machen. Aber wenn ich Graph Builder seitenweise hinzufüge. Die Log-Skalierung passierte nur auf der 1. Seite. Die andere Seite hat keine logarithmische Skala. Kann jemand raten, wie man das hinbekommt?
cht_NFC_RD_BE_FME_SB = dt_NFC_RD_BE_FME_SB << Graph Builder(
Size( 1058, 1464 ),
Show Control Panel( 0 ),
Variables(
X( :CYC ),
Y( :Name( "NFC_RD_BE_FME_SB(Cnt)" ) ),
Page( :Wafer )
),
Elements( Box Plot( X, Y, Legend( 4 ) ), Line( X, Y, Legend( 5 ) ) )
);
Report(cht_NFC_RD_BE_FME_SB)[Axisbox(2)] << {Scale("Log"), Min( 1 ), Max( 4096 ), Inc( 1 ), Minor Ticks(1), Show Major Grid(1)};
Auf der 1. Seite wird die logarithmische Skalierung angezeigt, aber ab der 2. Seite wird die logarithmische Skalierung nicht angezeigt.

Sie erhalten nur den Verweis auf die erste Grafik mit
Report(cht_NFC_RD_BE_FME_SB)[Axisbox(2)]
Sie könnten alle Referenzen abrufen und dann durchlaufen oder dann möglicherweise Xpath verwenden (nicht sicher, wie Sie alle Achsenreferenzen ohne sie in einer Liste abrufen, wenn Sie nur DisplayBoxes verwenden) und sie alle gleichzeitig festlegen. So etwas könnte funktionieren:
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Reliability/Fan.jmp");
gb = dt << Graph Builder(
Size(534, 956),
Show Control Panel(0),
Variables(X(:Time), Y(:Exponential), Page(:Censor)),
Elements(Points(X, Y, Legend(8)), Smoother(X, Y, Legend(9))),
SendToReport(Dispatch({}, "Exponential", ScaleBox, {Format("Best", 9)}))
);
rep = Report(gb) << XPath("//AxisBox");
rep = rep[2::N Items(rep)::2]; //get every other value
rep << {Scale("Log"), Minor Ticks(1), Show Major Grid(1)};Das Verständnis des Xpath und der "Matrix-Operation" ist hier sehr wichtig, und ich schlage vor, ein wenig damit herumzuspielen, um zu verstehen, was vor sich geht.