JuliaDynamics / RecurrenceAnalysis.jl

Recurrence Quantification Analysis in Julia
https://juliadynamics.github.io/RecurrenceAnalysis.jl/stable/
MIT License
45 stars 12 forks source link

Dedicated types for Recurrence matrices #21

Closed Datseris closed 5 years ago

Datseris commented 5 years ago

as discussed in #20 having dedicated types RecurrenceMatrix, CrossRecurrenceMatrix etc, all of which are subtypes of AbstractRecurrenceMatrix has a lot of benefits. Let's discuss the implementation here.

  1. What type parameters should be there, besides the ones of the data field?
  2. Any other fields besides the data field?

To-dos:

heliosdrm commented 5 years ago

I propose being a bit more disruptive and change also the names of the functions/types, such that they are closer to the nomenclature found in the literature, i.e. recurrenceplot',crossrecurrenceplot, etc. (producingRecurrencePlot,CrossRecurrencePlot, etc., all<: AbstractCrossRecurrencePlot`).

I did not do it like that in the beginning because initially they were not "plottable", so I thought that such names would be misleading.

The current function recurrenceplot might be changed to a plot recipe (to work with Plots.jl).

Datseris commented 5 years ago

Yeah, now that you mention that, it is wort considering renaming recurrencematrix to RecurrenceMatrix.


if you want to add a plotting recipe, there is no need for the AbstractCrossRecurrencePlot type. You can add the recipe directly to AbstractRecurrenceMatrix and then recurrenceplot name becomes obsolete.

I do not like the recipe idea though, firstly because I don't like Plots, secondly because a simple matrix that is showable through imshow is more flexible, thirdly because development support has seemed to switch to Makie. Another argument is that adds unnecessary development to our side, imshow already exists in most plotting packages.

Another alternative is to once again drop the recurrenceplot name, and simply rename it to plottable(x::AbstractRecurrenceMatrix) that does what the existing function does.

Datseris commented 5 years ago

I am opening a branch for this. At the moment I do not see any reason for recurrence and cross recurrence matrices to be of different type. I will make a datastructure that is simply called RecurrenceMatrix and has one field the data and the other field the type, simply as a string: cross-,joint- or the empty string.

heliosdrm commented 5 years ago

I see your point about the recipe. Then, I think that the best is to keep the original approach: the types will be RecurrenceMatrix, etc. (I would not call xxxPlot to something that is not directly plottable).

Then, the question is about the name of the function to create the plottable matrix. Shall we keep recurrenceplot, or change it to plottable?

I'm opening a new issue about the other question (different types for recurrence and cross-recurrence matrices). This is related to your latest question in #20.

Datseris commented 5 years ago

Closed in #25