Feature: Support for Ibis expressions
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 4.8k
- Forks
- 254
- Avg merge
- 10h 35m
- Merged PRs (30d)
- 9
Description
Hi! 👋🏻
I'm the lead developer of the Ibis project.
I recently did a write up of some analysis of Ibis's CI data using Ibis and plotnine.
I think plotnine is just the bee's knees, and I think ibis and plotnine could be even better together than they are right now.
What would it take to support ibis expressions? I am happy to take this all the way through myself, PR-ing to this repo as well as make any fixes to ibis that might be needed, but I want to check in to make sure this work would have a chance at getting in!
Here's an example from the above notebook where it would be great if I could pass in my ibis objects without having to first turn them into pandas DataFrames:
t = ... # an ibis table expression
df = t.execute()
ggplot(
df.loc[df.entity == "job"].reset_index(drop=True),
aes(x="started_date", y="duration", color="factor(improvements)"),
)
... # more plotting code follows
Instead, I'd like to write the following:
t = ... # an ibis table expression
# _ is a placeholder that means "the child table", here it's referring to the t.filter(...) call
ggplot(
t.filter(_.entity == "job"),
aes(x=_.started_date, y=_.duration, color="factor(improvements)"),
)
... # more plotting code follows
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Begin at the ggplot entry point and compare the existing pandas DataFrame example with the proposed Ibis expression usage. Determine the scope needed for filtering and aesthetic expressions without calling execute(); done means the supplied Ibis table expressions work directly in the plotting example.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- data-visualization
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100