|
From: Sterling S. <sm...@fu...> - 2012-10-03 17:01:50
|
Jianbao, The one thing I would add to Anthony's response, which is a good summary of what I would say, is that you should look into the animation aspects of matplotlib, and the xdata and ydata attributes of lines/axes for speed in replotting mostly similar situations. I regret having not learned of these before I made an application, and I have yet to go back and implement these faster methods. -Sterling On Oct 3, 2012, at 9:49AM, Anthony Floyd wrote: > Hi Jianbao, > > First some context: at the company I work for, we've been using > matplotlib to do much of what you want to do for the past 4 years. We > have created our own application for plotting, interrogating, and > manipulating time-series data coming from both simulations and > measurements, although from a completely different domain (in our case > it's virtual manufacturing of composite materials). In the past two > years, we've also been using matplotlib to plot in more-or-less > realtime data from a cloud industrial sensors (temperature, pressure, > etc). > >> 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. > > This is true, matplotlib can be slow, particularly for large data sets > and many data sets. The trick is to downsample (and use tiling if > you're going to be panning around a lot) what you're actually plotting > before handing it off to the plot. I think more recent versions of > matplotlib handle some of this for you, but we've found that it's > faster to do the downsampling ourselves. > >> Now let me turn to technical stuff. What I want is a time-series plotting > [...] >> 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. > > You're going to need more than that. At the very least you're going to > need a widget framework like wxPython, pyQT, pyGTK, or some such. > These will provide you with all the window management, widget > controls, and so on. Our preference is wxPython but YMMV. > >> 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. > > Absolutely, you'll want to use the API rather than the utility > functions. The best reference for that is the online documentation at > matplotlib.org. In the past we've found the source code documentation > (or, say, that generated by doxygen) more helpful than the Sphinx > documentation, but frankly our matplotlib bits are pretty stable now > and we haven't had to use the documentation for a while (perhaps it's > better now). > > Good luck! We've been very happy with our design choices, and get > nothing but positive feedback on how our plots look and feel. > matplotlib and the amazing active community around it have everything > to do with that. > > Anthony. > > ------------------------------------------------------------------------------ > Don't let slow site performance ruin your business. Deploy New Relic APM > Deploy New Relic app performance management and know exactly > what is happening inside your Ruby, Python, PHP, Java, and .NET app > Try New Relic at no cost today and get our sweet Data Nerd shirt too! > http://p.sf.net/sfu/newrelic-dev2dev > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users |