Masquage des zones de texte « Où (...) » dans les graphiques à l'aide de JSLBonjour,
Est-il possible de masquer/supprimer la ligne de texte avec Where(col="x") comme indiqué dans l'image ci-jointe à l'aide d'un script ? Je suis nouveau sur JMP et je n'ai pas encore bien compris tous les tenants et les aboutissants.
J'ai un ensemble de données empilées où toutes les étiquettes de métabolites/comptes (pH, osmo, etc.) sont dans une colonne et toutes les données correspondantes sont dans une autre.Dans mon cas, la zone de texte Where() n'est pas pertinente puisque j'ai renommé les titres de mes figures avec la même étiquette. Je peux masquer manuellement la zone de texte temporairement en cliquant avec le bouton droit lorsque j'affiche l'image dans JMP, mais je ne sais pas comment la masquer à l'aide de JSL et la garder cachée lorsque j'exporte au format HTML.
Voici un exemple de script pour l'un de mes graphiques :
Graph Builder(
Size( 531, 464 ),
Show Control Panel( 0 ),
Variables(
X( :Step ),
Y( :Name( "BR Metabolite/Count Data" ) ),
Overlay( :Run )
),
Elements(
Line( X, Y, Legend( 1 ) ),
Points( X, Y, Legend( 2 ), Jitter Limit( 0.2018 ) )
),
Where( :Name( "Metabolite/Count" ) == "pH" ),
SendToReport(
Dispatch(
{},
"Graph Builder",
OutlineBox,
{Set Title( "pH" ), Image Export Display( Normal )}
),
Dispatch(
{},
"graph title",
TextEditBox,
{Set Text( "pH vs. Step" )}
),
Dispatch( {}, "Y title", TextEditBox, {Set Text( "pH" )} )
)
);Merci pour l'aide!
Personnalisation de masseRe : Masquer les zones de texte « Où (...) » dans les graphiques à l'aide de JSLJ'ai trouvé une solution très intéressante en ligne 
dp = New Window("Graph Window", tb);
//delete all "Where" text on the chart
For( i = 1000, i > 0, i--,
try(
If( Contains( dp[Text Box( i )] << get text, "Where(:" ),
dp[Text Box( i )] << delete;
)
);
);J'espère que cela t'aides
Re : Masquer les zones de texte « Où (...) » dans les graphiques à l'aide de JSLVoici une façon de le gérer
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/big class.jmp" );
New Window( "big class - Graph Builder", vlb = V List Box() );
gb1 = Graph Builder(
invisible,
Size( 528, 456 ),
Show Control Panel( 0 ),
Variables( X( :weight ), Y( :height ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) ),
Where( :age == 12 )
);
(Report( gb1 ) << top parent)[Text Box( 1 )] << delete;
vlb << append( Report( gb1 ) );
gb2 = Graph Builder(
invisible,
Variables( X( :weight ), Y( :height ) ),
Show Control Panel( 0 ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) ),
Where( :age == 13 )
);
(Report( gb2 ) << top parent)[Text Box( 1 )] << delete;
vlb << append( Report( gb2 ) );
gb3 = Graph Builder(
invisible,
Variables( X( :weight ), Y( :height ) ),
Show Control Panel( 0 ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) ),
Where( :age == 14 )
);
(Report( gb2 ) << top parent)[Text Box( 1 )] << delete;
vlb << append( Report( gb3 ) );
Re : Masquer les zones de texte « Où (...) » dans les graphiques à l'aide de JSLPas de soucis. Merci pour votre aide quoi qu'il en soit. Je vais déconner et voir si je peux faire fonctionner quelque chose.
Comme je l'ai dit, je suis nouveau sur JMP, donc tout n'est pas rationalisé de manière très efficace à ce stade. À l'origine, je créais tous mes graphiques directement dans ma vlistbox, mais je ne savais pas comment y intégrer votre ligne de code. J'ai donc retiré toutes mes figures de la vlistbox et ajouté toutes les lignes de suppression séparément.
J'utilisais la clause By à l'origine, mais j'ai rencontré plusieurs problèmes lors de l'ajout du rapport à un rapport Web. Ainsi, au lieu de sauvegarder le script par groupe dans le presse-papiers, j'ai utilisé le script de sauvegarde dans la fenêtre de script (tous les objets), comme dans l'exemple ci-dessous :
Graph Builder(
Variables( X( :Passage Number ), Y( :Preculture Data ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) ),
By( :Name( "Metabolite/Count" ) )
);
New Window( "PCstack - Graph Builder",
V List Box(
Graph Builder(
Variables( X( :Passage Number ), Y( :Preculture Data ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) ),
Where( :Name( "Metabolite/Count" ) == "VCD at Split" )
),
Graph Builder(
Variables( X( :Passage Number ), Y( :Preculture Data ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) ),
Where( :Name( "Metabolite/Count" ) == "Viability at Split" )
),
Graph Builder(
Variables( X( :Passage Number ), Y( :Preculture Data ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) ),
Where( :Name( "Metabolite/Count" ) == "VCD at Inoc" )
),
Graph Builder(
Variables( X( :Passage Number ), Y( :Preculture Data ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) ),
Where( :Name( "Metabolite/Count" ) == "PDL" )
),
Graph Builder(
Variables( X( :Passage Number ), Y( :Preculture Data ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) ),
Where( :Name( "Metabolite/Count" ) == "PDT(h)" )
)
)
);
Re : Masquer les zones de texte « Où (...) » dans les graphiques à l'aide de JSLSans voir votre script complet, il est assez difficile de déterminer où se situe le problème.Mon autre question est la suivante : pourquoi effectuez-vous toutes les suppressions en un seul point de votre code, plutôt que d'avoir le code de suppression au point où le graphique est produit ?Ou utilisez-vous une clause By dans votre code, qui modifie la structure de l'arborescence d'affichage en une hiérarchie complètement différente du graphique autonome unique.
Re : Masquer les zones de texte « Où (...) » dans les graphiques à l'aide de JSLMerci pour votre aide.
Cela fonctionne très bien pour une seule figure, mais n'ajoute aucune des figures modifiées à ma vlistbox pour le moment. Il crache toujours une boîte vide lorsque j'essaie de les combiner. J'ai aussi essayé <
(Report( gb1 ) << top parent)[Text Box( 1 )] << delete;
(Report( gb2 ) << top parent)[Text Box( 1 )] << delete;
(Report( gb3 ) << top parent)[Text Box( 1 )] << delete;
(Report( gb4 ) << top parent)[Text Box( 1 )] << delete;
//(Report( gb5 ) << top parent)[Text Box( 1 )] << delete;
(Report( gb6 ) << top parent)[Text Box( 1 )] << delete;
(Report( gb7 ) << top parent)[Text Box( 1 )] << delete;
(Report( gb8 ) << top parent)[Text Box( 1 )] << delete;
(Report( gb9 ) << top parent)[Text Box( 1 )] << delete;
(Report( gb10 ) << top parent)[Text Box( 1 )] << delete;
fig3 = expr(
New Window( "Production Bioreactor - Metabolites/Counts",
V List Box(gb1,gb2,gb3,gb4, gb6, gb7,gb8,gb9,gb10,gb11,gb12,gb13
)
));
Re : Masquer les zones de texte « Où (...) » dans les graphiques à l'aide de JSLL'utilisation du message << Supprimer dans ce cas affectera le changement que vous souhaitez probablement sans répercussions. Un changement plus sûr est disponible via le message << Visibilité. Utilisez l'argument Réduire pour le rendre invisible et ne pas économiser son espace dans la fenêtre.
Re : Masquer les zones de texte « Où (...) » dans les graphiques à l'aide de JSLCela devrait fonctionner
gb = Graph Builder(
Size( 531, 464 ),
Show Control Panel( 0 ),
Variables(
X( :Step ),
Y( :Name( "BR Metabolite/Count Data" ) ),
Overlay( :Run )
),
Elements(
Line( X, Y, Legend( 1 ) ),
Points( X, Y, Legend( 2 ), Jitter Limit( 0.2018 ) )
),
Where( :Name( "Metabolite/Count" ) == "pH" ),
SendToReport(
Dispatch(
{},
"Graph Builder",
OutlineBox,
{Set Title( "pH" ), Image Export Display( Normal )}
),
Dispatch(
{},
"graph title",
TextEditBox,
{Set Text( "pH vs. Step" )}
),
Dispatch( {}, "Y title", TextEditBox, {Set Text( "pH" )} )
)
);
(Report( gb ) << top parent)[Text Box( 1 )] << delete;