My pull-request for matplotlib to add PyQt5 support has been accepted and merged, meaning PyQt5 support will be available in the upcoming v1.4.0 release of matplotlib.
Based off original work by @badders this re-implements the Qt backend structure as Qt5-first, with Qt4 wrappers for compatibility. It's hoped that this will simplify things going forward, keeping the latest API cleanest with minimal code-cruft.
Thanks to the matplotlib team for the support in getting the PR up to scratch.
Create GUI Applications with Python & Qt6 by Martin Fitzpatrick — (PyQt6 Edition) The hands-on guide to making apps with Python — Over 10,000 copies sold!