This is an announcement update, Fatou version 1.0.1 has been released, which now has a significant performance improvement due to the suggestion by @ckoe-bccms with parametric types
This should fix the issue with the high memory allocation for large n, allowing bigger fractals, faster
In this post, I had a comparison of n=1500 grid, which took 19 seconds before, while only taking 0.17 seconds in the new version with the parametric types.
It’s probably due to assigning the Fatou.Define object to parallel threads, because the iteration function depends on two Bool values in that object and also functions in it, which might become unnecessary now due to the information provided by the parametric type. Now, only the complex number is variable.
The newly tagged release of Fatou enables support for ImageInTerminal and deprecates the requirement for having PyPlot on your Julia installation. However, it continues to support PyPlot if it is installed.
I mean you could implement the plotting with recipes instead. All that is needed is RecipesBase, which is 200 loc with zero dependencies and no exports, and then the user would need Plots to plot it.
There are lots of colormaps available: Colors · Plots
If the color gradients from matplotlib can be made available within the MIT license here we would be happy to take a PR adding them so that this functionality becomes available. But - the jet, cubehelix and gist_earth color schemes are not perceptually uniform. Why do you choose this set of palettes?
To summarize, the reason why I used PyPlot is because it has lots of nice color maps, that’s why I made the package specifically compatible with PyPlot and not Plots, but anyone is welcome to add Plots support.
RecipesBase looks interesting, perhaps I will add that feature soon
I choose those color schemes on purpose, because I think they look the most interesting for fractals.
Some of them like jet,cubehelix are already available with ColorSchemes, but gist_earth is not available yet. The ColorSchemes can be used for ImageInTerminal, while the matplotlib are used for PyPlot. A large amount of them are compatible, but not all of them. I would like to see more also.
Great! I can see your colours do look interesting for fractals. If you do attempt to write recipes I think we could put those three in the misc library
For example, such as ocean, gist_earth, gnuplot which are all missing, then color maps will be much more portable across different plotting environments.
Yes, I’ve always had plans to make the color maps in Fatou independent of PyPlot, which can be solved with the use of ColorSchemes package. Unfortunately, I’ve not had the time to prioritize this.
The interface will generalize, please share if you have any specific interface example in mind.
The problem with ColorSchemes is that it’s a package with a big list of heavy dependencies, which is unneccesary for just providing color schemes (but useful for doing the other things you can do here). @cormullion maybe we should make that dependency-free ColorMaps package that simply holds color swatches, uses submodules to hold different libraries, and can be depended on by Colors, ColorSchemes, PlotUtils, Makie etc.?
We could ask some of the other libraries like colorbrewer.jl and noveltycolors and perceptualcolormaps to just put swatches in there (or basic functions describing the rgb curves if that’s preferred) so that we consolidate colorschemes in Julia.