Sous-titres dynamiques du générateur de graphiquesBonjour, j'espère que quelqu'un pourra m'aider à faire en sorte que le sous-titre de mon graphique utilise les valeurs minimales et maximales de l'année (min(:Year) et max(:Year)). Par exemple, si l'année minimale est 2018 et l'année maximale 2025, le sous-titre devrait être « 2018 - 2025 ».
Automatisation et scriptageRe: Sous-titres dynamiques du générateur de graphiquesmin / max issus du filtre de données local - ou de l'ensemble des données ?
Pour le filtre de données, veuillez consulter https://marketplace.jmp.com/appdetails/Graph+Builder+Toolbar
L'un des raccourcis permet d'utiliser les paramètres du filtre de données comme titre (et non sous-titre).
Re: Sous-titres dynamiques du générateur de graphiquesPour ajuster le sous-titre, accédez à C:\Users\_nom_utilisateur_\AppData\Roaming\JMP\JMP\Addins\hogi.GraphBuilderToolbar\resetAxisLabels.jsl
et modifier la ligne 36 en
gb[Text Edit Box( 2 )] << Set Text( title ); // was Text Edit Box( 1 )
Re: Sous-titres dynamiques du générateur de graphiquesD'après les données du tableau, cela donne quelque chose comme :
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/US Regional Population.jmp" );
:Year << data type(numeric);
Graph Builder(
Show Subtitle( 1 ),
Variables( X( :Year ), Y( :Population ), Overlay( :Region ) ),
Elements( Line( X, Y ) )
);
dt << select where (:year < 1950 ) << exclude(1) << select where(0);
// ---------------
myRows=where(dt, not (excluded()));
min = Char(min (dt[myRows,"Year"]));
max = Char(min (dt[myRows,"year"]));
((Current Report() << XPath( "//OutlineBox[@helpKey='Data Filter']" )) << get scriptable object) << Show Subtitle( 1 ) ;
current report()[Text Edit Box( 2 )] << Set Text( min || " — " || max );
Re: Sous-titres dynamiques du générateur de graphiquesSi je comprends bien, lorsque vous parlez de sous-titres « dynamiques », vous faites référence à l'utilisation du filtre de données local ? Vous devrez utiliser un script pour ajouter << Gestionnaire de modifications de filtre > à votre filtre de données local.
Je ne suis pas certain de la robustesse de cet exemple, mais il donne une idée de la façon d'utiliser << créer un gestionnaire de changement de filtre
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Show Subtitle(1),
Variables(X(:weight), Y(:height), Overlay(:sex)),
Elements(Points(X, Y, Legend(9)), Line Of Fit(X, Y, Legend(11))),
Local Data Filter(Add Filter(columns(:height)))
);
// Reference to filter
ob_filter = (gb << Top Parent) << XPath("//OutlineBox[@helpKey='Data Filter']");
ob_filter = ob_filter[1];
ldf = ob_filter << Get Scriptable Object;
f = Function({a},
dt = gb << Get Data Table;
w = ldf << Get where clause;
If(Is missing(w),
minval = Col Min(:height);
maxval = Col Max(:height);
,
Substitute Into(w, "Select ", "Get Rows ");
r = Eval(EvalExpr(Send(dt, Expr(Parse(w)))));
minval = Min(dt[r, "height"]);
maxval = Max(dt[r, "height"]);
);
title = Eval Insert("^minval^ < height: < ^maxval^");
gb << Dispatch({}, "graph 1 title", TextEditBox, {Set Text(title)});
);
rs = ldf << Make Filter Change Handler(f);
f(0); // run once
Re: Sous-titres dynamiques du générateur de graphiquesDiscussion connexe - avec des solutions similaires :
Est-il possible de mettre à jour dynamiquement le « titre du graphique » en fonction de la sélection d'éléments dans le filtre de données local (y compris les sélections multiples) ?
Voici des souhaits concernant l'ajout de cette fonctionnalité à JMP, sans avoir besoin de scripter :
Remplissage automatique du titre - générateur de graphiques
Filtre de données locales : option permettant d’utiliser la sélection comme titre du graphique
L'idée : l'utilisateur peut spécifier quelles entrées du filtre de données sont ajoutées au titre :

Re: Sous-titres dynamiques du générateur de graphiquesBonjour, désolé pour la confusion, j'aurais dû être plus précis. Je parle de l'ensemble des données. Lorsque mes données sont mises à jour, je souhaite que les dates correspondantes dans le sous-titre le soient également.
Re: Sous-titres dynamiques du générateur de graphiquesComme ça?
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/US Regional Population.jmp" );
dt:Year << Data Type( "Numeric" );
dt << Graph Builder(
Show Control Panel( 0 ),
Show Subtitle( 1 ),
Variables( X( :Year ), Y( :Population ), Overlay( :Region ) ),
Elements( Points( X, Y, Legend( 18 ) ) ),
SendToReport(
Dispatch( {}, "graph 1 title", TextEditBox,
{Set Text( Char( Col Min( :Year ) ) || " - " || Char( Col Max( :Year ) ) )}
)
)
);
Re: Sous-titres dynamiques du générateur de graphiquesÇa a parfaitement fonctionné ! Merci beaucoup !