Ich versuche, ein einfaches Skript zu schreiben, das Spalten durchläuft und jede Spalte iterativ als Y-Werte in einem Diagramm verwendet. Ich glaube, ich habe die for-Schleife deaktiviert, aber ich kann die Y-Achse nicht auf eine logarithmische Skala einstellen. Der Code wird ausgeführt, aber jedes generierte Diagramm hat eine lineare Skala mit einem Bereich, der für jede Spalte spezifisch ist.Ich möchte, dass jedes Diagramm eine logarithmische Skala aufweist (entweder mit einem speziell festgelegten Min/Max-Wert oder einem automatisch generierten Bereich basierend auf den Daten).
cd = Current Data Table();
column_names = cd << Get Column Names;
For ( i = 256, i <= 258, i++,
Graph Builder(
Size( 625, 660 ),
Variables(
X( :Day ),
Y( Column( cd, column_names[i] ) ),
Overlay( :Dose ),
),
Elements( Line( X, Y, Legend( 6 ) , Error Bars ("Standard Deviation") ) ),
SendToReport(
Dispatch(
{},
"Data Abs. Counts T CD56br" ,
ScaleBox,
{Scale( "Log" ), Format( "Best", 12), Min( 0.002 ), Max( 16000 ),
Inc( 1 ), Minor Ticks( 1 ), Label Row( Show Minor Labels( 0 ) )}
),
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
6,
Properties( 0, {Line Width( 2 )} ),
Properties( 1, {Line Width( 2 )} ),
Properties( 2, {Line Width( 2 )} ),
Properties( 3, {Line Width( 2 )} ),
Properties( 4, {Line Width( 2 )} )
)}
),
Dispatch(
{},
"Y title",
TextEditBox,
{Set Text( Column(cd, column_names[i]))}
)
)
))
ich habe gelesen https://community.jmp.com/t5/Discussions/Scripting-Y-Axis-to-be-Log-scale/mp/54573#M30852 und stecke immer noch fest. Ich habe versucht, ScaleBox(1) oder ScaleBox(2) einzubeziehen, konnte aber nicht einmal das erste oder zweite Diagramm auf einer logarithmischen Skala anzeigen lassen. Ich probiere auch die xPath-Lösung aus, aber zusätzliche Hilfe wäre großartig.
Vielen Dank!!
Bonus-Frage:
SendToReport(
Dispatch(
{},
"Data Abs. Counts T CD56br" ,Worauf bezieht sich hier „Data Abs. Counts T CD56br“? Das ist einer meiner Spaltennamen (aber nicht ALLE Spaltennamen!), der kopiert/eingefügt und beibehalten wurde.Es scheint so zu laufen, wie es sollte (abgesehen von der Skalierungssache) und die Änderung auf andere Werte (z. B. „Daten“) scheint nichts zu beschädigen. Was ist das?
Tatsächlich stellte sich heraus, dass mein Problem tatsächlich die BONUS-Frage war. Ich musste diesen Namen in char(column_names[i]) ändern, damit die folgenden Spezifikationen für *dieses* Diagramm gelten.
Der funktionierende Code ist also:
cd = Current Data Table();
column_names = cd << Get Column Names;
For ( i = 255, i <= 256, i++,
gb = Graph Builder(
Size( 625, 660 ),
Variables(
X( :Day ),
Y( Column( cd, column_names[i] ) ),
Overlay( :Patient ),
Color( :Dose )
),
Elements( Line( X, Y, Legend( 6 ) ) ),
SendToReport(
Dispatch(
{},
Char(column_names[i]),
ScaleBox,
{Scale( "Log" ), Format( "Best", 12 ), Min( 0.002 ), Max( 16000 ),
Inc( 1 ), Minor Ticks( 1 ), Label Row( Show Minor Labels( 0 ) )}
),
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
6,
Properties( 0, {Line Width( 2 )} ),
Properties( 1, {Line Width( 2 )} ),
Properties( 2, {Line Width( 2 )} ),
Properties( 3, {Line Width( 2 )} ),
Properties( 4, {Line Width( 2 )} )
)}
),
Dispatch(
{},
"Y title",
TextEditBox,
{Set Text( Column(cd, column_names[i]) )}
)
)
);
rgb = gb << report;
rgb << journal;
);