Sottotitoli dinamici di Graph BuilderCiao, speravo che qualcuno potesse aiutarmi a capire come fare in modo che il sottotitolo del mio grafico prenda i valori min(:Year) e max(:Year) e li utilizzi nel sottotitolo. Quindi, se l'anno minimo è il 2018 e quello massimo il 2025, il sottotitolo sarà "2018 - 2025".
Automazione e scriptingRe: Sottotitoli dinamici di Graph Buildermin/max dal filtro dati locale o dall'intero set di dati?
Per il filtro dati, dai un'occhiata a https://marketplace.jmp.com/appdetails/Graph+Builder+Toolbar
Una delle scorciatoie consente di utilizzare le impostazioni del filtro dati come titolo (non come sottotitolo).
Re: Sottotitoli dinamici di Graph BuilderPer modificare il sottotitolo, vai su C:\Utenti\_nomeutente_\AppData\Roaming\JMP\JMP\Addins\hogi.GraphBuilderToolbar\resetAxisLabels.jsl
e cambia la riga 36 in
gb[Text Edit Box( 2 )] << Set Text( title ); // was Text Edit Box( 1 )
Re: Sottotitoli dinamici di Graph BuilderE in base ai dati nella tabella, la situazione è più o meno questa:
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: Sottotitoli dinamici di Graph BuilderImmagino che, dato che stai parlando di sottotitoli "dinamici", ti riferisca all'utilizzo del Filtro Dati Locali. Dovrai usare uno script per aggiungere << Make Filter Change Handler al tuo filtro dati locale.
Non sono sicuro di quanto sia robusto questo esempio, ma dà un'idea di come usare << make filter change handler
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: Sottotitoli dinamici di Graph Builderdiscussione correlata - con soluzioni simili:
È possibile aggiornare dinamicamente la selezione degli elementi in base al "titolo del grafico" nel filtro dati locale (incluse selezioni multiple)?
Ecco alcuni suggerimenti per aggiungere questa funzionalità a JMP, senza bisogno di script:
Compilazione automatica del titolo - generatore di grafici
Filtro dati locali: opzione utilizza la selezione come titolo del grafico
l'idea: l'utente può specificare quali voci del filtro dati vengono aggiunte al titolo:

Re: Sottotitoli dinamici di Graph BuilderCiao, scusa per la confusione, avrei dovuto essere più specifico. Dall'intero set di dati. Man mano che il mio set di dati si aggiorna, vorrei che anche quelle date fossero aggiornate nel sottotitolo.
Re: Sottotitoli dinamici di Graph BuilderTi piace?
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: Sottotitoli dinamici di Graph BuilderHa funzionato benissimo! Grazie mille!