This question already has an answer here:
As the title says, I want to measure the area of different closed regions in a plot. Let me be more specific by giving a characteristic example. In the following figure, we observe that inside the black closed curve several regions (islands) depicted with different colors appear.
The outermost black limiting curve has an analytical expression and can be obtained by a simple contour plot. On the other hand, all the internal color islands do not have analytical expressions and are created using
ListPlot for plotting all the consecutively points forming each island. Now, I want to obtain, at least a rough estimation about the percentage of the total area occupied by the different islands. In other words, to know how "big" are the different sets of islands. In the particular example we can distinguish five different types of islands: (i) the central blue one; (ii) the central green one; (iii) the set of four purple islands; (iv) the set of three orange islands; (v) the set of two elongated red islands.
So, my question: Is there a way to compute the percentage of the total area occupied by each of these sets of islands using Mathematica?
Using a FORTRAN code I can compute these percentages. However, this is a very time consuming procedure, since I have to define a dense grid of points inside the closed curve, then integrate each one and finally classifying them into different types thus counting the required percentages. So, I would be really very grateful, if I could speed up this task by using Mathematica. The exact percentages as they have computed by the FORTRAN code are:
blue ---> 15.44%, green ---> 15.76%, red ---> 5.82%, magenta ---> 1.76%, orange ---> 9.66%,
All the data files and the Mathematica notebook used to create the above plot can be found here: