Advertisement
Guest User

Plateaus finden

a guest
Dec 7th, 2019
404
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 9.31 KB | None | 0 0
  1. #!/usr/bin/env python
  2. # coding: utf-8
  3. #testplot
  4. #plt.plot(arrayX,arrayY)
  5. #plt.axvline(arrayX[x_firstmaxima],color="red")
  6.  
  7. #finde alle möglichen Plateaus
  8. minimum = min(arrayY)
  9. maximum = max(arrayY)
  10. r = maximum-minimum
  11. factor = 0.03
  12. off = r*factor
  13. old = arrayY[0]
  14. flats = []
  15. temp = []
  16. for x,v in enumerate(arrayY):
  17.     if old-off < v < old+off:
  18.         temp.append(x)
  19.     else:
  20.         flats.append(temp)
  21.         temp = []
  22.         old=v
  23. if len(temp)!=0:
  24.     flats.append(temp)
  25.  
  26. #nur Plateaus nach dem maximum
  27. relevant_flats = []
  28. for flat in flats:
  29.     try:
  30.         if flat[0] > x_firstmaxima and len(flat)>10:
  31.             relevant_flats.append(flat)
  32.     except:
  33.         pass
  34.  
  35. #nur Anfang und Ende jedes Plateaus ermitteln
  36. beginend_flats = []
  37. for flat in relevant_flats:
  38.     beginend_flats.append([flat[0],flat[-1]])
  39.  
  40.  
  41. #neuer Plot
  42. plt.plot(arrayX,arrayY)
  43. plt.axvline(arrayX[x_firstmaxima],color="red")
  44.  
  45. for flat in beginend_flats:
  46.     plt.axvline(arrayX[flat[0]],color="green")
  47.     plt.axvline(arrayX[flat[1]],color="red")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement