# How to find second,third,etc maximum peak of list

I need to find all values of peaks. I have Table with 10000 elements in it and I plot a graphic using ListPlot.

Then I tried to find peaks:

tbl1 = Table[tbl[[i, 2]], {i, 1, Length[tbl]}];
gA = Max[tbl1]
gAm = Part[tbl, Position[tbl1 , gA ][[1, 1]], 1]


Here tbl my Table with Data And get:

0.15
8.751


So I find the last peak starting. How I can find other? I upload a .txt file with data to my google drive here .

I also tried to use FindPeaks but it's wrong:

peakpositions = FindPeaks[tbl[[All, 2]]]


{{116, 0.}, {1441, 0.}}

peakwavelengths = tbl[[#1, 1]] & @@@ peakpositions


{0.115, 1.44}

ListPlot[tbl, PlotRange -> All, GridLines -> {peakwavelengths, None},
GridLinesStyle -> Directive[Red, Thick]]


• Did you try FindPeaks? Nov 27, 2018 at 0:33
• Yes, I did. I added the result above.
– John
Nov 27, 2018 at 0:45

jumps = tbl[[1 + Flatten@Position[Sign@Differences[tbl[[All, 2]]], 1]]]


{{0.232, 0.05}, {2.411, 0.05}, {5.449, 0.1}, {8.751, 0.15}}

ListStepPlot[tbl,  Epilog -> {Red, PointSize[Large], Point[jumps]},
GridLines -> Transpose[jumps]]


Pick[tbl,Join[{0},Sign@Differences[Last/@tbl]],1]


{{0.232, 0.05}, {2.411, 0.05}, {5.449, 0.1}, {8.751, 0.15}}