That is a very nice plot, thanks for sharing!
![]()
First feature request would be to sort the rows/columns by intersection size. That is convenient as explained in the Wikipedia page. Maybe an option sort=true that is enabled by default?
Also, I would try to rename the functions to make them more idiomatic for Julia users, e.g., without underscores. upsetplot would be preferred. The function to_dataframe is also suspicious for those of us programming in Julia for a long time.
As a final suggestion, consider making this a Makie.jl recipe instead, so that people can use the recipe with any backend, including interactive ones (e.g., GLMakie.jl):