# \[ANN\] UpSetPlot.jl

**URL:** <https://discourse.julialang.org/t/ann-upsetplot-jl/136848>\
**Category:** Package Announcements\
**Tags:** plotting\
**Created:** [April 24, 2026, 8:34am UTC](https://discourse.julialang.org/t/ann-upsetplot-jl/136848 "2026-04-24T08:34:40Z")\
**Posts on this page:** 1\
**Showing post:** 4

<div class="post-metadata">

**Author:** ![juliohm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/juliohm/32/215266_2.png) [@juliohm](https://discourse.julialang.org/u/juliohm)\
**Post date:** [April 30, 2026, 4:17pm UTC](https://discourse.julialang.org/t/ann-upsetplot-jl/136848/4 "2026-04-30T16:17:48Z")

</div>

Cross-posting as it is relevant here too:

> [@The current state of function naming style](https://discourse.julialang.org/t/the-current-state-of-function-naming-style/136849/20):
>
> I usually avoid underscores in function names by designing APIs that are made of simple verbs and structs that hold complex state (and name). Instead of writing required\_action\_to\_take(args...) like in C, I take this long name as a sign that the software design can be improved. I introduce auxiliary structs to hold state ComplexMethodInCamelCase and a simple short verb (e.g., perform) to execute: method1 = ComplexMethodInCamelCase(...) method2 = AnotherComplexMethodToConsider(...) perform(arg…

---

_[View the full topic](https://discourse.julialang.org/t/ann-upsetplot-jl/136848)._
