Was hat diese Wunschlistenanfrage inspiriert?
Je nachdem, was Sie in JMP tun, müssen Sie aufgrund der Funktionsweise des Spaltenumschalters/lokalen Datenfilters manchmal unnötigerweise von breiten Daten zu großen Daten wechseln – wir können derzeit keine Spalten „filtern“. Dies ist einer der Gründe, warum ich das Add-In „Enhanced Sankey Plot“ (ESP) erstellt habe, da es ziemlich schwierig ist, bestimmte Spalten schnell zum Graph Builder hinzuzufügen/zu entfernen.
Welche Verbesserung würden Sie sich wünschen?
Ich hätte gerne ein neues Werkzeug? „Spaltenfilter“, mit dem ich bestimmen kann, welche Spalten ich anzeigen möchte. Dies würde im Grunde wie ein Datenfilter funktionieren, jedoch für Spalten.
Wenn ich eine Situation wie diese habe, in der ich zum Beispiel mehrere Spalten auf meiner Y-Achse habe

Ich habe keine einfachen Optionen zum Ausblenden oder Hinzufügen zusätzlicher Spalten. Wenn ich einige dieser Spalten hinzufügen oder neue hinzufügen möchte, muss ich zuerst die Daten stapeln und dann ein Diagramm mit lokalem Datenfilter erstellen

Das funktioniert zwar großartig, aber manchmal fühlt sich dieser Schritt sehr unnötig an.
Warum ist diese Idee wichtig?
Dadurch würde die Lücke zwischen großen/gestapelten und breiten/geteilten Daten kleiner werden.
Skript, um zu demonstrieren, wie das funktionieren könnte (das ist alles andere als ein brauchbares Produkt, sollte aber als Demonstration dienen; ich werde es auch in ein Add-In/eine Symbolleiste umwandeln, wenn ich genug Zeit habe, die Benutzeroberfläche richtig zu entwerfen)
Eine Spalte bei Y

Weitere hinzufügen und aktualisieren

X-Rolle entfernen

Fügen Sie der X-Rolle zwei hinzu

Mehr sehen...
Names Default To Here(1);
delete_variable_for_role = function({report, role}, {Default Local},
all_variables = report << get variables;
For Each({variable}, all_variables,
colname = Arg(variable, 1) << get name;
Try(
Eval(EvalExpr(
report << Remove Variable({Expr(NameExpr(AsColumn(colname))), Role(Expr(role)), Position(1)})
));
);
);
);
add_variables_for_role = function({report, columns, role}, {Default Local},
For Each({colname}, columns,
Eval(EvalExpr(
report << Add Variable({Expr(NameExpr(AsColumn(colname))), Role(Expr(role)), Position(1)});
));
);
);
update_cols = Expr(
cur_cols = fcs << get selected;
cur_role = cb << get selected;
report << inval;
delete_variable_for_role(report, cur_role);
add_variables_for_role(report, cur_cols, cur_role);
report << update window;
wait(0);
);
prepend_column_filter = Expr(
lb = (Report(report) << top parent) << child;
lb << Set Horizontal(1);
ob_colfilter = Outline Box("Column Filter",
V List Box(
H List Box(
Panel Box("Role to Filter",
Lineup Box(N Col(1),
Text Box("Select Role to filter"),
cb = Combo Box({"Y", "X"})
)
),
Panel Box("Actions",
Lineup Box(N Col(1),
Button Box("Refresh",
update_cols
),
)
)
),
Panel Box("Columns",
fcs = Filter Col Selector(Datatable(dt))
)
)
);
cur_height = report << get height;
fcs << set height(cur_height - 200);
fcs << set width(200);
Eval(EvalExpr(
ob_colfilter << Set Menu Script(
{"Remove Column Filter", Expr(ob_colfilter) << Delete Box; Expr(lb) << Set Horizontal(0)}
);
));
lb << Prepend(ob_colfilter);
);
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");
dt << Ungroup Columns;
report = dt << Graph Builder(
Size(528, 653),
Show Control Panel(0),
Fit to Window("On"),
Variables(X(:SITE), Y(:NPN1), Y(:PNP1, Position(1))),
Elements(Boxplot(X, Y(1), Y(2), Legend(4)))
);
wait(2);
prepend_column_filter;
Tolle Idee!
soooo nützlich, danke @jthi