Sto provando a scrivere un semplice script che scorre su colonne e utilizza iterativamente ciascuna colonna come valori Y in un grafico. Penso di avere il ciclo for down, ma non riesco a ottenere l'asse Y impostato su una scala di log. Il codice viene eseguito ma ogni grafico generato è su una scala lineare con un intervallo specifico per ogni colonna. Mi piacerebbe che ogni grafico fosse su una scala di registro (con un valore impostato min / max o un intervallo generato automaticamente in base ai dati).
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]))}
)
)
))
ho letto https://community.jmp.com/t5/Discussions/Scripting-Y-Axis-to-be-Log-scale/mp/54573#M30852 e sono ancora bloccato. Ho provato a includere ScaleBox (1) o ScaleBox (2) ma non riuscivo nemmeno a far sì che il primo o il secondo grafico si trovassero su una scala di registro. Sto anche provando la soluzione xPath, ma l'aiuto aggiuntivo sarebbe fantastico.
Grazie mille!!
Domanda bonus:
SendToReport(
Dispatch(
{},
"Data Abs. Counts T CD56br" ,Che cos'è il "Data Abs". Conta T CD56br "riferendosi a qui? Quello è uno dei miei nomi di colonne (ma non TUTTI i nomi delle colonne!) Che sono stati copiati / incollati e conservati. Sembra che stia funzionando come dovrebbe (a parte la cosa in scala) e cambiandolo su altri valori (ad esempio "dati") non sembra violare nulla. Cos'è questo?
In realtà, il mio problema è stato davvero la domanda BONUS. Ho dovuto cambiare quel nome in char (column_names [i]) in modo che le seguenti specifiche si applicassero a * quel * grafico.
Quindi il codice che funziona è:
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;
);