Matplotlib is a great library, but there are still issues. Over 20 years of development and 3 major version releases, Matplotlib has evolved into a giant library.
Matplotlib comes with a bunch of backend graphic support. Different backends come with different dependencies, which may or may not work on your machine. However, most of the users only use 1 or 2 of them. Nowadays the Tk backend works pretty well and is available everywhere. In practice as a 3rd party tool developer we may just use it (or the Agg backend for non-interactive code) and drop support for all of the other backends (which complicate the code a lot for not much benefit).
Ticks And Labels
These are some annoying little stuff that frequently show undesired behaviors here and there. There are two key concepts/classes:
Locator controls where the ticks are drawed, whereas
Formatter decides the label formats. For example, sometimes the labels will overlap with each other; sometimes the default format is really not what you want, so you need to tweak it carefully.
Subfigures are considered as experimental as of Matplotlib v3.5. I happened to discover a bug related to the callback methods of
quiver that will be fixed in v3.5.2.