Personally I find the style and whitespace defaults in matplotlib to be surprisingly displeasing. It always looks like "I just threw this together—I'll fix it later." Sure, you can fix it, but it's a huge fight.
PyX is a much better alternative. Like TeX, everything you make looks great.
The "I'll fix it later" aesthetic of matplotlib is addressed well by seaborn [1], which is built on top of matplotlib. Seaborn also works gracefully with Pandas. The killer feature for me of seaborn is "sns.despine()".
PyX is new to me, but it looks like it hasn't been updated in a while [2, 3].
Matplotlib is definitely a monolith, and it does seem like a huge fight to fix the style, but what is great is you can easily use some of its several predefined styles [0], define your own style sheets or customize specific style parameters through rcParams [1], or install third-party style sheets [2], so in the end the styling does seem much more manageable.
Python is my daily driver, but I briefly experimented with R and had a delightful experience with ggplot2. The ‘grammar of graphics’ was hard to leave behind when I switched back to Python, until I heard about Plotnine [1], which brings much of the same grammar and functionality to Python. It’s built on Matplotlib and a few other common libraries like Pandas.
The PyX's github repo [0] shows fairly low activity recently. The last commit was on November 21, 2021 (almost a year ago). I am curious whether PyX is in a maintenance mode?
PyX is a much better alternative. Like TeX, everything you make looks great.
edit for links:
https://pyx-project.org/examples/graphs/index.html
https://sourceforge.net/p/pyx/gallery/index/