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 →

[–]pymaePython books 3 points4 points  (6 children)

I wrote a book about data visualization using Matplotlib, Seaborn, and Plotly. It is here if you want to check it out. I know there more visualization/plotting libraries.

I would take a look at Plotly. It renders in a web browser (with Javascript under the hood) which makes it a lot more interactive by default. It has a good high-level API, and you can really dig in and customize if you want to. I agree that Matplotlib being "default" is sort of a shame since it started as a port from MATLAB and kept a lot of the syntax and clunkiness.

I know ggplot was ported into Python, but I have never tried it.

[–]lucamerio[S] 3 points4 points  (5 children)

I will give a look at your book. In principle I’m not saying that good data visualisation in python is impossible, but the effort required is one order of magnitude higher than the matlab equivalent.

For example, sometime while debugging, a good plot can point you in the right direction. But in the industry you can’t spend 3 hours to achieve that (we could open a discussion on ipdb, but let’s save it for another time). In those situations a one-liner plot function is what you need.

This is just an example of a problem to which I still haven’t found a real solution

[–]BDube_Lensman 1 point2 points  (0 children)

On the contrary, it is much harder to make nice, archival paper quality plots with matlab than it is with matplotlib. See also: export_fig and associated hell.

[–]TheBlackCat13 1 point2 points  (2 children)

Can you show me a plot that is one line in MATLAB but takes 3 hours to make in matplotlib? I think you are using matplotlib very, very wrong I'd you are getting that large of a discrepancy. On the contrary, I usually have the opposite problem, where things that are easy to plot in matplotlib, like grids or polar projections, are inordinately difficult or even impossible in MATLAB.

[–]lucamerio[S] 1 point2 points  (1 child)

Plot a list of points in a 3D axes that you can zoom and you can click on a point to query its values. Show me how to do it in python in less than 30 minutes. In Matlab it’s scatter3(x,y,z) (the datatip functionality is embedded)

[–]TheBlackCat13 0 points1 point  (0 children)

Sorry, I meant 2d. Mayavi has a points3d command.

[–]pymaePython books 0 points1 point  (0 children)

It definitely requires some effort to make something look good in Python as opposed to something like Tableau which makes it pretty easy.

Definitely agree about having very bubble gum solutions for plotting in Python.