-
Notifications
You must be signed in to change notification settings - Fork 233
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Grapher redesign #121
Comments
The As to the rest, got my head spinning with all the changes. I'll have to digest this some. |
@adamerose need to know when you think things will settle down on the major refactoring so I can address the automated title/render mode if it is still a regression. I'd like to get to the point where a new pypi release can be made so it'll have the grapher splitter change . And more generally, when it makes sense to address some of the other things, as I was waiting for the dust to settle a bit! :) |
One way to handle all plotly settings would be to allow a kwarg dict to show/pandasgui: pass them all the way to jotly if they come from the initial call. Internally, you can handle that with either method you propose. Once in jotly, globally for all plots, any kwargs that start with layout_ are applied to update_layout, anything else to update_trace. And like you said, totally skip the UI. This would be extremely flexible. New option in plotly? no problem, already supported. |
Pushed my changes so far. Things are mostly working and I put back in the title generation but it needs to be fixed up since I renamed I deleted my previous comment since I changed my mind on each point I gave 😅 |
Just had to remove Some feedback:
|
In case you are wondering, number 1 hurdle at this time is:
|
Yeah still haven't had time for that, will probably do it by this weekend |
Done. Only enabled it on Splom (scatter_matrix) and Word Cloud so far. It'll probably take months to finish all the ideas in this thread - can you give a shortlist of what else you think needs to be done before putting out another release makes sense? I'm never in a hurry to put out new releases but I know you mentioned it above and can prioritize some things |
Hey that's great. Let me look at this, I'll let you know. |
I ended up packaging a wheel file with the pre-redesign code but with graph splitter, to buy some time, so not super urgent doing a release ATM. I've been looking into the |
Another PR for this ticket: #137 |
Tracking major changes to the Grapher here, will edit this OP as things change.
How the Grapher works
pandasgui.jotly
pandasgui.grapher
and imports all those Jotly functionsFuncUi
defined inpandasgui.widgets.func_ui
and it takes a list of schemas then auto-generates the UI based on the type-hints of the function provided in the schema.Here's how
FuncUi
maps the Jotly function type hints to PyQt widgets:ColumnName
(which is just astr
) -> A textbox that you can type in or drop columns ontoLiteral
-> A combobox dropdown with options for the valid values defined in the type hintbool
-> A checkboxColumnNameList
(which isList(str)
) -> A list of multiple text boxes where you can drop column names and add/remove rows.Todo
Preview Kwargs
to show your args as defined by the UI in a text box as a dictColumnNameList
for args that accept a list of column namescolor_mode
arg like this, but add a thirdauto
option that uses a heuristic.x = pandasgui.show_grapher(df, type='scatter', args={ 'x': 'age', 'y': 'fare', 'color':'survived''})
and it will pop open like thisThe text was updated successfully, but these errors were encountered: