dilemma di scripting di grafica in un report con più framebox<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Sto cercando di utilizzare JSL per disegnare linee orizzontali in più framebox di un report di trama sovrapposto contenente un raggruppamento "per". L'intercetta y desiderata della linea orizzontale varia da una cornice all'altra. Questo sembra facile con alcuni loop e il comando "aggiungi script di grafica", tuttavia le linee orizzontali appaiono sempre nella stessa posizione in ogni riquadro. Ad esempio se il report ha 5 frame frame e l'elenco di intercetta y contiene 5 valori diversi, tutti e 5 i framebox visualizzeranno la riga in yintercept [5] perché contengono tutti lo stesso script: "HLine (yintercept ); "e 5 è stato l'ultimo valore di i. Qualche idea su come assegnare uno script unico a ciascun framebox?
Ri: dilemma di scripting grafico in un report con più frameboxForse a volte devi parlarne ...
Ecco cosa mi ha fatto il trucco:
for (i=1,i<=nBy,i++, //loop through each of the by groups in the report
minLine = Eval( Eval List(dPATMin[i]) );
maxLine = Eval( Eval List(dPATMax[i]) );
eval(
Eval Expr(
rep[Frame Box(i)] << Add Graphics Script(
2,
H Line( Expr(minLine) );
H Line( Expr(maxLine) );
);
)
);
);Ri: dilemma di scripting grafico in un report con più frameboxCiao di nuovo,
sfortunatamente non ero in grado di risolvere il problema dell'aggiunta di diversi script grafici a più framebox con la soluzione di cui sopra.
Ecco il mio script:
for (i=1,i<=nBy,i++, //loop through each of the by groups in the report
minLine = Eval( Eval List(dPATMin[i]) );
maxLine = Eval( Eval List(dPATMax[i]) );
eval(
substitute(
expr(
rep[Frame Box(i)] << Add Graphics Script(
2,
H Line( minLine );
H Line( maxLine );
);
)
,
expr(i)
,
i
);
);
);Qualcuno ha una soluzione per aggiungere diverse "H Lines" a più FrameBox?
Grazie!
Ri: dilemma di scripting grafico in un report con più frameboxSono stato in grado di risolvere questo dilemma dopo aver fatto qualche lettura nella guida allo scripting di JMP 9. La chiave è fare uso della funzione sostitutiva. Il mio codice originale assomigliava a questo:
per (i = 1, i <= nBy, i ++, // eseguono il ciclo di ognuno dei gruppi per il report
r [Frame Box (1)] << Aggiungi Graphics Script (2, HLine (HT ));
);
Dopo aver incorporato la funzione sostitutiva sembra che questo:
per (i = 1, i <= nBy, i ++, // eseguono il ciclo di ognuno dei gruppi per il report
eval (sostituto (
expr (r [Frame Box (1)] << Aggiungi Graphics Script (2, HLine (HT );
)), Expr (i), i);
);
);
Così ora, quando ripasso lo script associato a ciascun framebox, vedo HLine (HT [1]), HLine (HT [2]) ... invece di HLine (HT )