Imposta il titolo dei grafici del generatore di graficiHo scritto uno script in JMP 18 che crea grafici a linee in righe da 3 usando 'graph builder', 'fit group'. In pratica, le tabelle contengono valori di misura per 'analiti' in più 'bioreattori' su più 'punti temporali'. In JMP 18 ottengo un titolo per ogni grafico, ma un collega che usa JMP 17 scopre che il titolo manca, il che rende il grafico privo di significato. Sono completamente perplesso! Avete suggerimenti su cosa posso fare per aggiungere un titolo?
Ecco lo script:
newWindow = New Window(reportName, tb = Tab Box());
//loop through the dataTables and add tab page box for each with a local data filter for dilution factor on left, and line charts on the right
for( i = 1, i <= NItems(dataTables), i++,
tb << Add(
Tab Page Box(
Title(dataTables[i] << get name),
Data Filter Context Box(
H List Box(
dataTables[i] << Data Filter(
Local,
Add Filter( columns( :Dilution Factor, :Type ) ),
Mode( Select( 1 ), Show( 1 ), Include( 1 ) )
),
V List Box(
dataTables[i] << Fit Group(
Graph Builder(
Size( 300, 300 ),
Show Control Panel( 0 ),
Variables(
X( :Time point ),
Y( :"Mean(Value)"n ),
Overlay( :Vessel )
),
Elements( Line( X, Y, Legend( 20 ) ) ),
By( :Analyte )
),
<<{Arrange in Rows( 3 )}
)
)
)
)
)
)
);
tb << set selected(1);In JMP 17 the title highlighted with the red arrow is missing for each chart:
Automazione e scriptingRe: Imposta il titolo dei grafici del generatore di graficiPer escludere impostazioni strane nelle preferenze, potresti confrontare l'output di:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Window( "test",
dt << Fit Group(
Graph Builder(
Ignore Platform Preferences(1), // next step: disable this line
Size( 300, 300 ),
Show Control Panel( 0 ),
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Line( X, Y, ) ),
By( :age )
),
<<{Arrange in Rows( 3 )}
)
);
Passaggio successivo: disattivare la linea e controllare nuovamente.
Se non ci sono problemi con il set di dati campione, dobbiamo trovare il problema nei tuoi dati.
-> è possibile condividere?
Re: Imposta il titolo dei grafici del generatore di graficiIl tuo filtro dati non funziona in JMP17
Names Default To Here( 1 );
dts = {};
Insert Into(dts, Open("$SAMPLE_DATA/Big Class.jmp"));
Insert Into(dts, Open("$SAMPLE_DATA/Big Class Families.jmp"));
nw = New Window("", tb = Tab Box());
For(i = 1, i <= N Items(dts), i++,
tb << Add(
Tab Page Box(Title(dts[i] << get name),
Data Filter Context Box(
H List Box(
/*dts[i] << Data Filter(
Local,
Add Filter(
columns(:sex)),
Mode(Select(1), Show(1), Include(1))
),*/
V List Box(
dts[i] << Fit Group(
Graph Builder(
Size(300, 300),
Show Control Panel(0),
Variables(X(:height), Y(:weight), Overlay(:sex)),
Elements(Line(X, Y, )), By(:age)
),
<<{Arrange in Rows(3)}
)
)
)
)
)
)
);
Se vuoi usare << Adatta gruppo (non sono sicuro se sia il caso di usarlo perché non è pensato per il generatore di grafici, anche se funziona), hai poche opzioni: correggere i titoli dopo la creazione o crearli in modo diverso.
Probabilmente non è molto robusto, ma può dare un'idea di cosa potresti fare (utilizzare i valori della colonna invece di affidarsi all'espressione Where è probabilmente l'opzione più robusta)
Names Default To Here( 1 );
dts = {};
Insert Into(dts, Open("$SAMPLE_DATA/Big Class.jmp"));
Insert Into(dts, Open("$SAMPLE_DATA/Big Class Families.jmp"));
nw = New Window("", tb = Tab Box());
For(i = 1, i <= N Items(dts), i++,
tb << Add(
Tab Page Box(Title(dts[i] << get name),
Data Filter Context Box(
H List Box(
dts[i] << Data Filter(
Local,
Add Filter(
columns(:sex)),
Mode(Select(1), Show(1), Include(1))
),
V List Box(
dts[i] << Fit Group(
Graph Builder(
Size(300, 300),
Show Control Panel(0),
Variables(X(:height), Y(:weight), Overlay(:sex)),
Elements(Line(X, Y, )), By(:age)
),
<<{Arrange in Rows(3)}
)
)
)
)
)
)
);
wait(0);
If(Word(1, JMP Version(), ".") == "17",
gb_obs = nw << XPath("//OutlineBox[@helpKey = 'Graph Builder']");
For Each({gb_ob}, gb_obs,
gb = gb_ob << Get Scriptable Object;
s = gb << get script;
w = Extract Expr(s, Where(Wild List()));
a = Substitute(Char(Arg(w, 1)), "==", "=");
gb << Title("Graph Builder " || Substr(a, 2))
);
);
Modifica: i titoli verranno interrotti se viene utilizzato il filtro dati
Re: Imposta il titolo dei grafici del generatore di graficiPotrebbe essere più semplice utilizzare metodi separati per diverse versioni, poiché il modo in cui funzionano le colonne è stato modificato in JMP18 e non tutti funzionano con entrambi
Names Default To Here( 1 );
dts = {};
Insert Into(dts, Open("$SAMPLE_DATA/Big Class.jmp"));
Insert Into(dts, Open("$SAMPLE_DATA/Big Class Families.jmp"));
nw = New Window("", tb = Tab Box());
For(i = 1, i <= N Items(dts), i++,
tb << Add(
Tab Page Box(Title(dts[i] << get name),
Data Filter Context Box(
H List Box(
dts[i] << Data Filter(
Local,
Add Filter(
columns(:sex)),
Mode(Select(1), Show(1), Include(1))
),
If(Word(1, JMP Version(), ".") == "17",
Lineup Box(N Col(3),
gb = Graph Builder(
Size(300, 300),
Show Control Panel(0),
Variables(X(:height), Y(:weight), Overlay(:sex)),
Elements(Line(X, Y, )), By(:age)
)
)
,
gb = Graph Builder(
Size(300, 300),
Group Options(Layout("Arrange in Rows", N Across(3))),
Show Control Panel(0),
Variables(X(:height), Y(:weight), Overlay(:sex)),
Elements(Line(X, Y, )), By(:age)
)
)
)
)
)
)
);
Se vuoi che i tuoi utenti possano modificare il numero di elementi presenti in ogni riga, puoi aggiungere una casella di riepilogo e uno script.
Re: Imposta il titolo dei grafici del generatore di graficiCome sottolinea @jthi , il filtro dati è una delle fonti delle differenze. Il modo in cui Fit Group risponde al filtro dati è cambiato in JMP 18+.
Un'altra grande differenza tra JMP 17 e JMP 18 è l'aggiunta della Group Platform per i by-group. In JMP 18, questa nuova piattaforma ha opzioni di layout simili a Fit Group. In JMP 17 potresti sostituire Fit Group con una Line Up Box per il layout. Combinando i due insieme, questo script funziona abbastanza bene per me in entrambi:
dataTables = EvalList({
Open("$SAMPLE_DATA/Big Class.jmp"),
Open("$SAMPLE_DATA/Big Class Families.jmp")
});
newWindow = New Window("Reports", tb = Tab Box());
//loop through the dataTables and add tab page box for each with a local data filter for dilution factor on left, and line charts on the right
for( i = 1, i <= NItems(dataTables), i++,
tb << Add(
Tab Page Box(
Title(dataTables[i] << get name),
Data Filter Context Box(
H List Box(
dataTables[i] << Data Filter(
Local,
Add Filter( columns( :sex ) )
),
V List Box(
Line Up Box(NCol(3),
dataTables[i] << Graph Builder(
Size( 300, 300 ),
Show Control Panel( 0 ),
Variables(
X( :height ),
Y( :weight )
),
Elements( Line( X, Y, Legend( 20 ) ) ),
By( :age ),
Group Options( Layout( "Arrange in Rows", N Across( 3 ) ) )
)
)
)
)
)
)
)
);
tb << set selected(1);
Il layout tra la versione 17 e la versione 18 sarà diverso: in JMP 17 la griglia è gestita da LineUpBox, mentre in JMP 18 il layout è gestito da Group Platform e ogni LineUpBox ha un solo elemento figlio.
Un'altra opzione potrebbe essere quella di utilizzare il ruolo Wrap in Graph Builder anziché By, ma in questo modo si otterrebbero assi e legenda condivisi, cosa che potresti non desiderare.
-E
Re: Imposta il titolo dei grafici del generatore di graficiUn'altra opzione: lasciare che il collega aggiorni a JMP18.1 e utilizzare la nuova opzione di pagina introdotta con JMP18 
Bonus per lui:
non ci sono più problemi con Trova - o non trovare?

Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Graph Builder(
Variables(
X( :height ),
Y( :weight ),
Page( :age, Levels per Row( 3 ) ),
Overlay( :sex )
),
Elements( Points( X, Y ), Smoother( X, Y ) )
);
Re: Imposta il titolo dei grafici del generatore di graficiGrazie per l'aiuto: ci sono voluti alcuni giorni per testarlo in JMP 17, ma funziona bene.
Re: Imposta il titolo dei grafici del generatore di graficiGrazie mille per questo suggerimento. Ho finito per usare Line Up Box sia per JMP 17 che per JMP 18