xdenisx

i1 mag trends+spline

Nov 20th, 2012
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.68 KB | None | 0 0
  1. # -*- coding: UTF-8 -*-
  2.  
  3. #Modifed 2012/11/16
  4.  
  5. import numpy as np
  6. import matplotlib as mpl
  7. import matplotlib.pyplot as plt
  8. from numpy import *
  9. import sys
  10. from scipy.interpolate import spline
  11.  
  12. plt.clf()
  13.  
  14. ffile = sys.argv[1]
  15.  
  16. data = genfromtxt(ffile, unpack=True)
  17.  
  18. N   = data[0][:]
  19. mod = data[1][:]
  20. fi  = data[2][:]
  21. i1  = data[3][:]
  22.  
  23. X = N
  24.  
  25. Y_01 = mod
  26. Y_02 = i1
  27.  
  28. #Magnitude linear trend
  29. coefficients_mod = polyfit(X, Y_01, 1)
  30. polynomial_mod   = poly1d(coefficients_mod)
  31. xs_mod           = arange(0, max(N), 100)
  32. ys_mod           = polynomial_mod(xs_mod)
  33.  
  34. #Magnitude spline 4
  35. spline_coefficients_mod = polyfit(X, Y_01, 4)
  36. spline_polynomial_mod   = poly1d(spline_coefficients_mod)
  37. spline_xs_mod           = arange(0, max(N), 100)
  38. spline_ys_mod           = spline_polynomial_mod(spline_xs_mod)
  39.  
  40. #i1 linear trend
  41. i1_lt_coefficients_i1  = polyfit(X, Y_02, 1)
  42. i1_lt_polynomial_i1    = poly1d(i1_lt_coefficients_i1)
  43. i1_lt_xs_i1            = arange(0, max(N), 100)
  44. i1_lt_ys_i1            = i1_lt_polynomial_i1(i1_lt_xs_i1)
  45.  
  46. #i1 spline 4
  47. i1_sp_coefficients_i1  = polyfit(X, Y_02, 4)
  48. i1_sp_polynomial_i1    = poly1d(i1_sp_coefficients_i1)
  49. i1_sp_xs_i1            = arange(0, max(N), 100)
  50. i1_sp_ys_i1            = i1_sp_polynomial_i1(i1_sp_xs_i1)
  51.  
  52.  
  53. mpl.rcParams['figure.figsize'] = (8.0, 6.0)
  54.  
  55. #Magnitude
  56. line_mod,         = plt.plot(X, Y_01, 'ro-', markevery = (0, 5), linewidth=0.3, markersize = 0, label ='Magnitude')
  57. #Linear trend of magnitude
  58. line_spline_mod   = plt.plot(xs_mod, ys_mod,  'r--',  linewidth=1.0, label ='Linear trend of magnitude')
  59. #Spline of magnitude
  60. line_spline_mod   = plt.plot(spline_xs_mod, spline_ys_mod,  'r-',  linewidth=3.0, label ='4th spline of magnitude')
  61.  
  62. #I1
  63. line_i1           = plt.plot(X, Y_02, 'bo-', markevery = (0, 5), linewidth=0.3, markersize = 0, label = 'Total variability(I1)')
  64. #Linear trend I1
  65. line_lt_i1        = plt.plot(i1_lt_xs_i1, i1_lt_ys_i1,  'b--',  linewidth=1.0, label ='Linear trend of I1')
  66. #Spline I1
  67. line_lt_i1        = plt.plot(i1_sp_xs_i1, i1_sp_ys_i1,  'b-',  linewidth=3.0, label ='4th spline of I1')
  68.  
  69. plt.title(u'Magnitude and variability (1979-2006)')
  70.  
  71. plt.legend(loc = 'best')
  72.  
  73. ax_01 = plt.axes()
  74. ax_01.grid(color = 'black')
  75. ax_01.set_xlabel(u'[years]')
  76. ax_01.set_ylabel(u'[cm/s]')
  77.  
  78. plt.axis((min(N)-300, max(N)+400, min(mod), max(i1)))
  79.  
  80. labels = [item.get_text() for item in ax_01.get_xticklabels()]
  81.  
  82. labels[1] = '1979'
  83. labels[2] = '1984'
  84. labels[3] = '1989'
  85. labels[4] = '1994'
  86. labels[5] = '1999'
  87. labels[6] = '2007'
  88.  
  89. ax_01.set_xticklabels(labels)
  90.  
  91. plt.savefig(ffile[0]+'_I1_mod.png', dpi=300, format = 'png')
  92.  
  93. print 'Correlation (magnitude,i1): %2.1f' % (corrcoef(mod, i1)[0,1])
Advertisement
Add Comment
Please, Sign In to add comment