It’s entirely possible, with a bit of work. I’ve done exactly that, opting for pyqtgraph over basemap for performance reasons - with pyqtgraph I can get a zoomable, pannable map that works well. Basemap is fine for static maps.
The key to plotting geographic data in pyqtgraph is to convert everything to a projection that you like, such as mercator. At that point, everything is in meters and can be plotted as simple x and y coordinates. Getting the map background can be a bit tricky though, depending on your needs. For example, if you want to be able to zoom from “whole earth” to “city” level, a single bitmap won’t work very well, so you’ll have to figure out an alternative. On the other hand, if you only need minimal zoom, then it’s just a matter of finding/creating an appropriate bitmap image for your map background, and using it as a background image on the plot.
Finally, if you want the axis to display latitude/longitude rather than meters in your projection, you’ll have to subclass axisitem and override tickStrings and tickValues to re-project the meter based values back to lat/lon. This works well for the mercator projection, where latitude and longitude lines are a straight grid, but I don’t know how well it would work (or if it would work at all) for any of the projections where latitude and longitude are curving lines. For those, you may just have to hide the axis completely and rely on your background image.
---
Israel Brewster
Software Engineer
Alaska Volcano Observatory
Geophysical Institute - UAF
2156 Koyukuk Drive
Fairbanks AK 99775-7320