some minor tweaks to some mpl files and color filter updates
[quplot.git] / defangle.py
blob48e771919d7db527b7ef0c138ce21611c2dc9956
1 import matplotlib as mpl
2 import matplotlib.mlab as mlab
3 import matplotlib.pyplot as plt
4 import matplotlib.axes as axe
5 import matplotlib.collections as collections
6 import numpy as np
7 import random
8 from pylab import *
9 from matplotlib.pyplot import *
11 ANGLE = []
12 VELO = []
13 ANGLE.append("../rk_defangle.dat")
14 ANGLE.append("../data/eu_defangle_t225.dat")
15 ANGLE.append("../data/eu_defangle_t224.dat")
16 VELO.append("../rk_bif_avg_velo.dat")
17 VELO.append("../data/eu_defangle_velo_t255.dat")
18 VELO.append("../data/eu_defangle_velo_t224.dat")
21 FOUT = "../latex2/images/defangle.png"
23 xlabel = r'$h$'
24 ylabel = r'$\delta y$'
25 res = (1024/80,768/80)
26 pad1 = 1
27 pad2 = 0.1
28 tsize = 16
29 lsize = 24
30 max = 0.875
31 acangle = 58
33 ######################################################################
35 angle = []
36 velo = []
38 for i in range(len(ANGLE)):
39 angle.append(mlab.csv2rec(ANGLE[i], delimiter='\t', comments='#'))
40 for i in range(len(VELO)):
41 velo.append(mlab.csv2rec(VELO[i], delimiter='\t', comments='#'))
43 r = []
44 psi = []
45 vx = []
47 for i in range(len(angle)):
48 r.append(angle[i].r)
49 psi.append(angle[i].x)
50 for i in range(len(velo)):
51 vx.append(velo[i].x)
55 def mean_angle(param,angle):
56 unique_param = unique(param)
57 list_angles = [ [] for DUMMYVAR in range(len(unique_param)) ]
58 ret_avg = []
59 for i in range(len(unique_param)):
60 for j in range(len(angle)):
61 #print j, len(param), i, len(unique_param)
62 if (param[j] == unique_param[i]):
63 list_angles[i].append(angle[j])
64 #print len(list_angles[i])
65 ret_avg.append(abs(float(sum(list_angles[i])) /
66 len(list_angles[i])))
67 #print len(ret_avg)
68 return ret_avg
70 color_list = [
71 'black',
72 'red',
73 'green',
76 marker_list = [
77 '.',
78 ',',
79 'o',
80 'v',
83 ls_list = [
84 '-',
85 '--',
86 '-.',
87 ':',
88 '.',
89 ',',
90 'o',
91 'v',
94 print marker_list[0]
96 left, width = 0.1, 0.8
97 c = max/2
98 rect1 = [left, c+0.1, width, c]
99 rect2 = [left, 0.1, width, c]
101 rad_ac = acangle*(np.pi/180)
103 fig = plt.figure(figsize=res)
105 ax1 = fig.add_axes(rect1)
106 ax2 = fig.add_axes(rect2)
108 avg_angles = []
109 avg_velo = []
110 unique_r = []
112 for i in range(len(angle)):
113 print "avg_angles[",i,"]"
114 avg_angles.append(mean_angle(r[i],psi[i]))
115 print "avg_velo[",i,"]"
117 avg_velo.append(mean_angle(r[i],vx[i]))
118 unique_r.append(unique(r[i]))
120 for i in range(len(angle)):
121 ax1.plot(unique_r[i], avg_angles[i], marker=marker_list[i],
122 ms=0, ls=ls_list[i], color=color_list[i])
123 for i in range(len(velo)):
124 ax2.plot(unique_r[i], avg_velo[i], marker_list[i], ms=0,
125 ls=ls_list[i], color=color_list[i])
127 xticks = np.arange(0,360+1,45)
128 yticks1 = np.arange(0,360+1,45)
129 yticks2 = np.arange(0,1.1,0.5)
131 ax1.set_xlim(r[0].min()-pad1,r[0].max()+pad1)
132 ax1.set_ylim(yticks1.min(),yticks1.max())
133 ax2.set_xlim(r[0].min()-pad2,r[0].max()+pad2)
134 ax2.set_ylim(0,vx[i].max()+pad2)
135 ax1.set_xticks([])
136 ax2.set_xticks(xticks)
137 ax1.set_yticks(yticks1)
138 ax2.set_yticks(yticks2)
139 ax1.axvline(acangle, color='black', ls=":")
140 #ax1.axvline(acangle-45, color='black', ls="-.")
141 #ax1.axvline(acangle+45, color='black', ls="-.")
142 ax1.axvline(acangle+180, color='black', ls=":")
143 #ax1.axvline(acangle+180-45, color='black', ls="-.")
144 #ax1.axvline(acangle+180+45, color='black', ls="-.")
145 ax2.axvline(acangle, color='black', ls=":")
146 ax2.axvline(acangle+180, color='black', ls=":")
147 #ax2.axvline(acangle+180-45, color='black', ls="-.")
148 #ax2.axvline(acangle+180+45, color='black', ls="-.")
149 #ax2.axvline(acangle-45, color='black', ls="-.")
150 #ax2.axvline(acangle+45, color='black', ls="-.")
152 ax1.set_ylabel(r'$\psi$', size=lsize)
153 ax2.set_ylabel(r'$v_x$', size=lsize)
154 ax2.set_xlabel(r'$\phi$', size=lsize)
155 ax2.set_xticklabels(ax2.get_xticks(), size=tsize)
156 ax1.set_yticklabels(ax1.get_yticks(), size=tsize)
157 ax2.set_yticklabels(ax2.get_yticks(), size=tsize)
159 plt.savefig(FOUT)
161 #plt.show()