I don't have to use the pep8 tool to see this isn't pep8. I prefer ``z = np.cos(1.5 * x) * np.cos(1.5 * y)`` above ``z = np.cos(1.5*x)*np.cos(1.5*y)``

This is a matter of choosing whether matplotlib follows strict pep8 convention or not. I always follow the strict pep8 conventation, and many scientific python projects do (with the pep8 tool or flake8 to check the compliance). I believe matplotlib should do the same (it avoids the long discussions on whether X is better than Y and the numerous commits to reformat the code such as the ones I've been doing recently on matplotlib's codebase), but I don't think there has been a clear decision on that.