Graph Builder Dynamische UntertitelHallo, ich hoffe, mir kann jemand helfen, herauszufinden, wie ich die Untertitel meiner Grafik so anpassen kann, dass sie die Werte von min(:Year) und max(:Year) enthalten. Wenn das minimale Jahr also 2018 und das maximale Jahr 2025 ist, soll der Untertitel „2018–2025“ lauten.
Automatisierung und SkripterstellungBetreff: Dynamische Untertitel im Graph Buildermin / max werden aus dem lokalen Datenfilter oder aus dem gesamten Datensatz gebildet?
Den Datenfilter finden Sie unter https://marketplace.jmp.com/appdetails/Graph+Builder+Toolbar
Eine der Tastenkombinationen ermöglicht es Ihnen, die Einstellungen des Datenfilters als Titel (nicht Untertitel) zu verwenden.
Betreff: Dynamische Untertitel im Graph BuilderUm die Untertitel anzupassen, gehen Sie zu C:\Users\_username_\AppData\Roaming\JMP\JMP\Addins\hogi.GraphBuilderToolbar\resetAxisLabels.jsl
und ändern Sie Zeile 36 in
gb[Text Edit Box( 2 )] << Set Text( title ); // was Text Edit Box( 1 )
Betreff: Dynamische Untertitel im Graph BuilderUnd basierend auf den Daten in der Tabelle sieht es ungefähr so aus:
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 );
Betreff: Dynamische Untertitel im Graph BuilderIch nehme an, mit „dynamischen“ Untertiteln meinen Sie die Verwendung des lokalen Datenfilters? Sie müssen ein Skript verwenden, um Ihrem lokalen Datenfilter einen „Filteränderungshandler erstellen“ hinzuzufügen.
Ich bin mir nicht sicher, wie robust dieses Beispiel ist, aber es vermittelt eine Vorstellung davon, wie man den Filteränderungshandler mit << erstellt.
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
Betreff: Dynamische Untertitel im Graph Builderverwandte Diskussion – mit ähnlichen Lösungsansätzen:
Ist es möglich, die Auswahl von Elementen im lokalen Datenfilter (einschließlich Mehrfachauswahl) anhand des "Diagrammtitels" dynamisch zu aktualisieren?
Es gibt den Wunsch, diese Funktion zu JMP hinzuzufügen – ohne dass dafür Skripte benötigt werden:
Automatische Titelbefüllung – Diagrammgenerator
Lokaler Datenfilter: Option „Auswahl als Diagrammtitel verwenden“
Die Idee: Der Benutzer kann festlegen, welche Einträge des Datenfilters dem Titel hinzugefügt werden:

Betreff: Dynamische Untertitel im Graph BuilderHallo, Entschuldigung für die Verwirrung, ich hätte genauer sein sollen. Ich meine den gesamten Datensatz. Wenn sich mein Datensatz aktualisiert, sollen sich die Datumsangaben im Untertitel ebenfalls aktualisieren.
Betreff: Dynamische Untertitel im Graph BuilderSo was?
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 ) ) )}
)
)
);
Betreff: Dynamische Untertitel im Graph BuilderDas hat wunderbar funktioniert! Vielen Dank!