Computers clearly need more Julia turtles.
So I found this thread fascinating. For those who ask why you would not want to use Matplotlib (via PyPlot) my definitive answer is this: today I wasted 3 hours of my life trying to get PyPlot to work. I ran into issues of mkl library not found and then backend not found. I read through multiple stack exchange solutions and Github error posts. Finally, besides all the other stuff people suggested, I got it to work by defining:
ENV["PYTHON"]=""
But I had to do that inside the Julia repl. It wasnāt good enough to do it in the shell.
I understand PyCall
is really cool and useful. But by adding several layers of indirection we make our code fragile and error prone. Using Python and R is necessary as an interim solution to āfill in the gapsā. But if Julia is to be competitive as a full blown Data Science solution then it needs solid Julia frameworks that minimize the amount of hacking going on. Data Science is useless without good visualization tools, so there needs to be top of class solutions in Julia. Calling out to Fortran or C is acceptable at times because the interface is almost always simple and clean. Python by contrast is too high level an abstraction which adds unnecessary complexity. It does not provide a solid foundation.
I was forced to get PyPlot
working because I want to study the Julia for Statistics book and PyPlot
is a dependency. But in my own future work I will try out many of the alternatives listed by all the people here.
My wish is that someone would imitate MATLABās figure element 1 to 1.
With the data exploration abilities.
It seems Makie is getting closer.
Probably weāll have almost parity within a year or two.
Iāve been experimenting with the different plotting libraries as a new Julia user and this week stumbled upon Makie after watching the JuliaCon presentation. I have to say, I really like the idea of GPU acceleration. Smoothly animated plots (that can handle a lot of data points) are a great way to explain research results and have advantages over static images when appropriate.