Définir le titre des graphiques du générateur de graphiquesJ'ai écrit un script dans JMP 18 qui crée des graphiques en courbes en lignes de 3 à l'aide de « graph builder », « fit group ». En gros, les tableaux contiennent des valeurs de mesure pour les « analytes » dans plusieurs « bioréacteurs » sur plusieurs « points temporels ». Dans JMP 18, j'obtiens un titre pour chaque graphique, mais un collègue utilisant JMP 17 constate que le titre est manquant, ce qui rend le graphique dénué de sens. Je suis complètement perplexe ! Des suggestions sur ce que je peux faire pour ajouter un titre ?
Voici le 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:
Automatisation et scriptsRé: Définir le titre des graphiques du générateur de graphiquesPour exclure des paramètres étranges dans les préférences, pourriez-vous s'il vous plaît comparer la sortie de :
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 )}
)
);
Étape suivante : désactiver la ligne et vérifier à nouveau.
S’il n’y a pas de problème avec l’ensemble de données d’échantillon, nous devons trouver le problème dans vos données.
-> possible de partager ?
Ré: Définir le titre des graphiques du générateur de graphiquesVotre filtre de données est en train de le casser dans 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)}
)
)
)
)
)
)
);
Si vous souhaitez utiliser << Fit Group (je ne sais pas vraiment s'il doit être utilisé car il n'est pas destiné au générateur de graphiques même s'il fonctionne), vous avez peu d'options : corriger les titres après la création ou les créer de manière différente.
Ce n'est probablement pas très robuste, mais cela peut donner une idée de ce que vous pourriez faire (en utilisant les valeurs de la colonne au lieu de vous fier à l'expression Where, qui est probablement une option plus robuste)
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))
);
);
Modifier : les titres seront cassés si un filtre de données est utilisé
Ré: Définir le titre des graphiques du générateur de graphiquesIl serait peut-être plus simple d'utiliser des méthodes distinctes pour différentes versions, car le fonctionnement par colonnes a été modifié dans JMP18 et toutes ne fonctionnent pas avec les deux.
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)
)
)
)
)
)
)
);
Si vous souhaitez que vos utilisateurs puissent modifier le nombre d'éléments dans chaque ligne, vous pouvez ajouter une zone de contour et un script.
Ré: Définir le titre des graphiques du générateur de graphiquesComme le souligne @jthi , le filtre de données est l'une des sources des différences. La façon dont Fit Group répond au filtre de données a changé dans JMP 18+.
Une autre différence importante entre JMP 17 et JMP 18 est l'ajout de la plate-forme de groupe pour les sous-groupes. Dans JMP 18, cette nouvelle plate-forme dispose d'options de mise en page similaires à Fit Group. Dans JMP 17, vous pouvez remplacer Fit Group par une boîte d'alignement pour la mise en page. En combinant les deux, ce script fonctionne assez bien pour moi dans les deux cas :
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);
La disposition entre 17/18 sera différente - dans JMP 17, le LineUpBox gère la grille, tandis que dans JMP 18, la plate-forme de groupe gère la disposition, et tous les LineUpBox n'ont qu'un seul enfant.
Votre autre option pourrait être d’utiliser le rôle Wrap dans Graph Builder plutôt que d’utiliser By, mais cela vous donnerait des axes et une légende partagés, ce que vous ne souhaitez peut-être pas.
-Et
Ré: Définir le titre des graphiques du générateur de graphiquesAutre option : laisser le collègue effectuer la mise à jour vers JMP18.1 et utiliser la nouvelle option de page qui a été introduite avec JMP18:)
Bonus pour lui :
plus de problèmes avec Find - ou pas de recherche ?

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 ) )
);
Ré: Définir le titre des graphiques du générateur de graphiquesMerci pour votre aide à ce sujet - il a fallu quelques jours pour le tester dans JMP 17 mais cela fonctionne bien.
Ré: Définir le titre des graphiques du générateur de graphiquesMerci beaucoup pour cette suggestion. J'ai fini par utiliser la Line Up Box pour JMP 17 et JMP 18