JuliaDynamics / ComplexityMeasures.jl

Estimators for probabilities, entropies, and other complexity measures derived from data in the context of nonlinear dynamics and complex systems
MIT License
54 stars 12 forks source link

Interactive plots #215

Closed kahaaga closed 1 year ago

kahaaga commented 1 year ago

Hey, @Datseris

As I told you on Zoom, I've been preparing some interactive plots and videos for Entropies.jl.

Videos will go on youtube, and we can simply link to them in the documentation if relevant. However, I've also prepared some interactive GLMakie plots, like the one below (screenshot video for spatial dispersion/permutation entropy) .

I was wondering whether we should include these interactive examples as part of the library, or if we should create a separate package like ComplexityMeasuresInteractive.jl to host these. I guess the separate package approach is what you do for the rest of JuliaDynamics? Alternatively, while there are still not that many examples, I can also just provide some gists and link to them in the docs (like we do for the wavelet entropy notebook).

https://user-images.githubusercontent.com/5237566/209190234-18b23d8d-5b61-41c2-b979-a32f1be9ccee.mov

Datseris commented 1 year ago

Hm, this is nice but it is too specialized to be offered as a function, much less so as a package. If some general purpose functionality ever comes up, it can ba put in InteractiveDynamics.jl.

(Besides, I would say making the above animation as a user is easy if one has some basic knowledge of Makie. The makie part shouldn't have been more than 10 lines of code or so)

kahaaga commented 1 year ago

Hm, this is nice but it is too specialized to be offered as a function, much less so as a package. If some general purpose functionality ever comes up, it can ba put in InteractiveDynamics.jl.

The remaining stuff I have atm is about visualization of the differential entropy estimators (i.e. how are densities estimates using the neighbors). This could in principle be made completely generic and be offered for educational purposes.

(Besides, I would say making the above animation as a user is easy if one has some basic knowledge of Makie. The makie part shouldn't have been more than 10 lines of code or so)

Yes, the Makie code for this particular example is pretty simple. Just an Observable(i) over the current frame, and some @lift statements that collects the relevant (pre-computed) data. Just 20-30 lines or so, including plot formatting.

EDIT: anyways, I'll keep this open, so we'll have a place to discuss interactive/instructional video stuff that might belong in the docs here.

kahaaga commented 1 year ago

I'm delegating stuff like this to external resources. We can link to it in the documentation later if appropriate.