DOC: Best practice when to use ax.set_thing(foo) vs ax.set(thing=foo) · Issue #28693 · matplotlib/matplotlib · GitHub
Skip to content

DOC: Best practice when to use ax.set_thing(foo) vs ax.set(thing=foo) #28693

Description

@timhoffm

Documentation Link

No response

Problem

Inspired through the discussion at #28677 (comment): Through #20569 we have made Artist.set() more useable. In particular, we have started to Axes.set() in some places in the documentation.

We currently do not have a best practice when to ax.set_thing(foo) vs ax.set(thing=foo).

Suggested improvement

We should have a best practive when to use what that we document, teach and use in our docs.

There was a loose discussion at https://github.com/matplotlib/ProjectManagement/blob/b9b0a56cb7b329c3c2adfac77a84975f70868e24/meeting_notes/2021/q2.md#do-we-want-to-soup-up-and-advertise-objset-more, but no definitive solution.

General observations:

  • Both APIs are intended to co-exist. We don't plan to get rid of one or the other.
  • Advantages of set_thing():
    • more specific
    • easier to find the docs (for set(thing=...) one has to go to set() and follow the link for the specific keyword).
    • more functionality through kwargs available
  • Advantages of set(thing=...):
    • shorter
  • Neutral
    • tab completion should work for both cases (ax.set_<TAB> and ax.set(<TAB>)
    • API is fully documented for both cases (no more set(**kwargs) signatures)
    • Historically set_thing was mostly used and advertized

Please add if you have additional points.

I'll stop here without suggesting a solution to keep the discussion unbiased. Suggestions for solution should be posted as separte comments.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions