This is a minor source of confusion. Pylab and Pyplot are packages within Matplotlib. They are what most casual users experience when they say that they're using Matplotlib. I use them, they're convenient.
A minor headache is when you have to break out of Pyplot to use some of the more detailed behaviors of Matplotlib, and now you're interacting with both Pyplot and the lower level calls. For instance, plt.title('foo') and gca().set_title('foo') do the same thing.
If you're a fluent programmer, you fly past those seeming inconsistencies with barely any notice. Explaining them to a novice programmer is harder.
For even the simplest possible plot, I have to create a subplot and axis.
Sometimes I'd like to just plot a function. I don't want to initialize arrays for that.
It's easy to forget that I have to `import matplotlib.pyplot`
I don't need to plot things often, but whenever I use matplotlib, I always have to spend a few minutes to look up how to use it.