Wenn ich nur Graph Builder mit Seite mache, kann ich die Log-Skalierung ohne Probleme mit JSL durchführen. Aber wenn ich den Graph Builder seitenweise hinzufüge. die Log-Skalierung trat nur auf der 1. Seite auf. die andere Seite hat nicht die Log-Skala. Kann jemand raten, wie man es macht?
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 ersten Seite wird die logarithmische Skala angezeigt, ab der zweiten Seite wird die logarithmische Skala nicht angezeigt.

Sie erhalten nur den Verweis auf den ersten Graphen mit
Report(cht_NFC_RD_BE_FME_SB)[Axisbox(2)]
Sie könnten alle Referenzen abrufen und dann über sie hinwegschleifen oder dann möglicherweise Xpath verwenden (nicht sicher, wie Sie alle Achsenreferenzen ohne sie in einer Liste erhalten, 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 "Matrixoperation" ist hier sehr wichtig, und ich schlage vor, ein wenig damit herumzuspielen, um zu verstehen, was vor sich geht.