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.