Interactive plots will become laggy with even moderately complicated plots. We were tasked, as part of a lab, to write a controller in Matlab that would balance the pendulum and move the cart to a designated position. Seaborn: Seaborn avoids a ton of boilerplate by providing default themes which are commonly used. In Sage (http://sagemath.org), which is built on Python, we do some very minimal preparsing of input, so that 1/3 is the exact rational number 1/3 (instead of Python's stupid 1/3 == 0). I mean having 10 different FFT-libs isn't exactly much of a plus, one great one is enough. On the flip side, plots look much cleaner (no aliasing, always correct vectorized output, all backends look identical). Seaborn is not stateful. Just watch out for one ideological difference: Matplotlib tries, above all, to be as precise as possible. Most of my colleagues use Matlab, I teach Matlab, but for my work, I mostly use Python. But that doesn’t sound like what the question is really about. If you have something to teach others post here. The biggest thing I've been concerned with is how Matplotlib (and other tools; suggestions welcome) will compare to Matlab plotting tools. One downside is you do have to poke around for the right functions, whereas in Matlab you have all the functions sitting in your (always global) namespace. Does Matplotlib have anything like this consistency, detail, and capacity for under-the-hood control? It specializes in statistics visualization and is used if one has to summarize data in visualizations and also show the distribution in the data. Python is a high-level programming language. If you're going to be doing work at a university, you may find reluctance from the persons you are working with as I did a few years back. This allows NumPy to seamlessly and speedily integrate with a wide variety of databases. But with Java, I didn't have to think about performance. Because of it’s low-level interface nature, Matplotlib can plot anything. Beginners Guide to SQLALchemy In Python For Database Operations. Constrained, simple and declarative to allow focus on the data rather than trivial issues such as formatting. One of the main advantages is that only a few lines of codes are necessary to create aesthetically pleasing, interactive plots. Or stupidly. And finally to your earlier point about speed in matlab: matlab is by and large a wrapper around C and Fortran libraries that are open source. PDL is some inline C code so you get the benefit of both languages. Doing anything more complicated than the common things everyone expects you to do will get really hairy really fast. I use pyqtgraph for my 3D plotting now and it's awesome but it's even less user friendly than matplotlib. Matplotlib. It's straightforward and plays nicely with matplotlib. StackShare I was not defending a weakness of Matlab, but instead misunderstood what you said. You're probably unlikely to write a real application in Matlab. However, there's also PyX (. Matplotlib works with data frames and arrays. ": I am a climate scientist and Matlab offers a lot to me : great matrix syntax, very fast algorithms (SVD, matrix inversion, FFT), large mindshare (cf Central File Exchange), and advanced toolboxes for statistics, spectral analysis and the like. Suprisingly, R is one of the best in terms of speed, comparable to Matlab (Matlab is pretty fast if you vectorize your code). They were both designed for engineers (I mean engineers, not computer programmers) to explore matrix models interactively, then save their work as scripts - you were never meant to use m-files for general purpose programming. You are comparing apples to oranges. It builds on Scipy and many other tools. It was dead simple. R provides a wide variety of statistical (linear and nonlinear modelling, classical statistical tests, time-series analysis, classification, clustering, ...) and graphical techniques, and is highly extensible. If you want to plot complicated visualisations, with a little tinkering, you will be able to do it! Likewise for geological data analysis. "But," I hear you say, "that means I have to write my program in...Java! It seems that NumPy is the equivalent of Perl's PDL. Thus, you need to purchase it to be able to use it. While matplotlib is free, matlab costs money. It allows you to plot live data such as a sinusoidal wave, or even the NASDAQ stock market index! If someone else already built the tools using MATLAB and you don’t need to write any code whatsoever yourself, that’s obviously nicest of all.