Filter data sets 1 and 4 using HarmonicMeanFilter
(or use your favorite filter) to get rid of the jumps:
harmonicMeanFilter = Transpose[
{#, HarmonicMeanFilter[#2, 50]} & @@ Transpose[#]] &;
Plot filtered data sets 1 and 4 together with sets 2 and 5 with the option Filling -> Top
:
lllp1425 = ListLogLogPlot[
Join[harmonicMeanFilter /@ data[[{1, 4}]], data[[{2, 5}]]],
Joined -> True, Filling -> Top];
Extract the polygons and take their union:
polygons1425 = BoundaryDiscretizeRegion[
RegionUnion @@ Cases[Normal @ lllp1425, _Polygon, All]];
Do the same for data sets 3 and 6:
lllp36 = ListLogLogPlot[data[[{3, 6}]], Joined -> True];
polygons36 = BoundaryDiscretizeRegion[
RegionUnion @@ Cases[lllp36, Line[x_] :> Polygon[x], All]];
Combine polygon1425
with polygon36
and get the boundary region:
bdr = BoundaryDiscretizeRegion @ RegionUnion[polygons1425, polygons36];
Finally to get the region of interest, take RegionDifference
between the bounding rectangle of bdr
and bdr
:
bottomregion = RegionDifference[
MapAt[{.99 #[[1]], 1.2 #[[2]]} &, BoundingRegion[bdr], {1}], bdr];
Show everything together:
Show[ListLogLogPlot[data,
Joined -> True, PlotLegends -> Range[6], ImageSize -> 700],
BoundaryDiscretizeRegion[bottomregion, BaseStyle -> Yellow]]
picture at the top