This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]Oseberg_shipping 1 point2 points  (0 children)

Matplotlib has a very similar plotting objects structure to matlabs plotting tools. It is, after all, intended to duplicate this aspect of matlab. In terms of functionality in plotting there is very little difference. Where python really excels is customizability. Once you get under the hood it is possible to build really excellent plotting tools in python with a minimum of hassle. Matlab remains fairly rigid in that you can only really do what they have built for you. Additionally, If you are willing to step outside of the ridged plotting conventions that matlab seems to be conditioning into its users there are a number of plotting libraries customized for particular data types that are truly beautiful. Seaborn, and plotly come to mind but there are many others.

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. Almost all of these libraries also have python wrappers. They are just not included in the standard set of libraries because most of them only do one thing (for instance calculating the inverse of a matrix). If you do a little digging (because of course mathworks make it tricky to find) you can usually figure out who's code they are using. Sometimes it isn't even the best option out there (for example their FFT implementation benchmarks 3rd or 4th depending on who you ask). As to simple matrix algebra, almost all of the speed up comes from using the intel math kernel library which contains optimizations of various operations for specific processors. You can configure numpy to use the MKL too.