As some of you might have noticed, I am asking questions frequently recently, most of which are naive ones. The reason for this is that I recently decided to develop a satellite data viewer with matplotlib, and I am new to both python and matplotlib.
Here is a little background of this decision. I am a postdoc in the space physics field, where a lot of people watch and analyze satellite data for a living. The data are time-series data by nature. As for now, a lot of people use packages based on IDL to navigate their data. I myself is one of them too. For now. One big problem with IDL is that it is very expensive because it doesn’t have a broad enough user base to drive their cost down. Another big problem is that the company that is developing IDL doesn’t seem to work in the right direction. For example, more than 99% of the time of more than 99% of the IDL users use the so-called direct graphics system in IDL, but IDL hasn’t upgraded this system since, I don’t know, maybe early 90s. Compared to what matplotlib can offer, the on-screen graphics quality of the IDL direct graphics is simply “ugly”, which is a big reason why I want to switch to matplotlib. There are also some other frequently-used nice features in matplotlib that IDL doesn’t have.
After reading the matplotlib documents and trying out several little examples for a few days, I now have a feeling that matplotlib at least has most of the infrastructure ready for my purposes. One thing that bothers me a little bit is that the plotting speed seems to be a little slow. But IDL had the same problem in the first place too. As computers became faster and faster, that problem just became less and less important. I expect the same thing will happen to matplotlib too.
Now let me turn to technical stuff. What I want is a time-series plotting system like the following. First, it manages all the figure windows it generates, including the positions and looks of the figure windows. A common use case for such a system would be that the user is also analyzing the data while watching the time-series data,and hence the user likely needs to plot some temporary results, such as a snapshot of particle distribution function, but doesn’t want to screw up the time-series plot. Therefore, it will be nice that the plotting windows of the time-series data are managed particularly. Second, it should come with a navigation toolbar that facilitates the data navigation. The current navigation toolbar widget is nice and probably suit more than 50% percent of my needs, but it’s not sufficient. Third, the system should have minimal dependencies for the sake of portability and installation easiness. As for now, I don’t want any dependencies beyond numpy, scipy, and matplotlib. Ipython would be a highly recommended tool, but the system should be just fine without it.
After weighing all the options, I sense that I will probably be better off to use the matplotlib library directly, rather than the convenient utilities provided by pyplot. However, I am having a hard time to find good instructions for using the matplotlib infrastructure. So, I would like to hear some references on that. I also would like to hear general advice about how to construct such a system so that its structure is consistent with matplotlib conventions. Other comments and advice are warmly welcome too.
Thank you very much for reading this far.