##// END OF EJS Templates
dsd
Erick Valdez -
r871:27779f749441
parent child
Show More
@@ -1,468 +1,469
1 import numpy
1 import numpy
2 import datetime
2 import datetime
3 import sys
3 import sys
4 import matplotlib
4 import matplotlib
5
5
6 if 'linux' in sys.platform:
6 if 'linux' in sys.platform:
7 matplotlib.use("TKAgg")
7 matplotlib.use("TKAgg")
8
8
9 if 'darwin' in sys.platform:
9 if 'darwin' in sys.platform:
10 matplotlib.use('TKAgg')
10 matplotlib.use('TKAgg')
11 #Qt4Agg', 'GTK', 'GTKAgg', 'ps', 'agg', 'cairo', 'MacOSX', 'GTKCairo', 'WXAgg', 'template', 'TkAgg', 'GTK3Cairo', 'GTK3Agg', 'svg', 'WebAgg', 'CocoaAgg', 'emf', 'gdk', 'WX'
11 #Qt4Agg', 'GTK', 'GTKAgg', 'ps', 'agg', 'cairo', 'MacOSX', 'GTKCairo', 'WXAgg', 'template', 'TkAgg', 'GTK3Cairo', 'GTK3Agg', 'svg', 'WebAgg', 'CocoaAgg', 'emf', 'gdk', 'WX'
12 import matplotlib.pyplot
12 import matplotlib.pyplot
13
13
14 from mpl_toolkits.axes_grid1 import make_axes_locatable
14 from mpl_toolkits.axes_grid1 import make_axes_locatable
15 from matplotlib.ticker import FuncFormatter, LinearLocator
15 from matplotlib.ticker import FuncFormatter, LinearLocator
16
16
17 ###########################################
17 ###########################################
18 #Actualizacion de las funciones del driver
18 #Actualizacion de las funciones del driver
19 ###########################################
19 ###########################################
20
20
21 # create jro colormap
22
23 jet_values = matplotlib.pyplot.get_cmap("jet", 100)(numpy.arange(100))[10:90]
21 jet_values = matplotlib.pyplot.get_cmap("jet", 100)(numpy.arange(100))[10:90]
24 blu_values = matplotlib.pyplot.get_cmap("seismic_r", 20)(numpy.arange(20))[10:15]
22 blu_values = matplotlib.pyplot.get_cmap("seismic_r", 20)(numpy.arange(20))[10:15]
25 ncmap = matplotlib.colors.LinearSegmentedColormap.from_list("jro", numpy.vstack((blu_values, jet_values)))
23 ncmap = matplotlib.colors.LinearSegmentedColormap.from_list("jro", numpy.vstack((blu_values, jet_values)))
26 matplotlib.pyplot.register_cmap(cmap=ncmap)
24 matplotlib.pyplot.register_cmap(cmap=ncmap)
27
25
28 def createFigure(id, wintitle, width, height, facecolor="w", show=True, dpi = 80):
26 def createFigure(id, wintitle, width, height, facecolor="w", show=True, dpi = 80):
29
27
30 matplotlib.pyplot.ioff()
28 matplotlib.pyplot.ioff()
31
29
32 fig = matplotlib.pyplot.figure(num=id, facecolor=facecolor, figsize=(1.0*width/dpi, 1.0*height/dpi))
30 fig = matplotlib.pyplot.figure(num=id, facecolor=facecolor, figsize=(1.0*width/dpi, 1.0*height/dpi))
33 fig.canvas.manager.set_window_title(wintitle)
31 fig.canvas.manager.set_window_title(wintitle)
34 # fig.canvas.manager.resize(width, height)
32 # fig.canvas.manager.resize(width, height)
35 matplotlib.pyplot.ion()
33 matplotlib.pyplot.ion()
34
36
35
37 if show:
36 if show:
38 matplotlib.pyplot.show()
37 matplotlib.pyplot.show()
39
38
40 return fig
39 return fig
41
40
42 def closeFigure(show=False, fig=None):
41 def closeFigure(show=False, fig=None):
43
42
44 # matplotlib.pyplot.ioff()
43 # matplotlib.pyplot.ioff()
45 # matplotlib.pyplot.pause(0)
44 # matplotlib.pyplot.pause(0)
46
45
47 if show:
46 if show:
48 matplotlib.pyplot.show()
47 matplotlib.pyplot.show()
49
48
50 if fig != None:
49 if fig != None:
51 matplotlib.pyplot.close(fig)
50 matplotlib.pyplot.close(fig)
52 # matplotlib.pyplot.pause(0)
51 # matplotlib.pyplot.pause(0)
53 # matplotlib.pyplot.ion()
52 # matplotlib.pyplot.ion()
54
53
55 return
54 return
56
55
57 matplotlib.pyplot.close("all")
56 matplotlib.pyplot.close("all")
58 # matplotlib.pyplot.pause(0)
57 # matplotlib.pyplot.pause(0)
59 # matplotlib.pyplot.ion()
58 # matplotlib.pyplot.ion()
60
59
61 return
60 return
62
61
63 def saveFigure(fig, filename):
62 def saveFigure(fig, filename):
64
63
65 # matplotlib.pyplot.ioff()
64 # matplotlib.pyplot.ioff()
66 fig.savefig(filename, dpi=matplotlib.pyplot.gcf().dpi)
65 fig.savefig(filename, dpi=matplotlib.pyplot.gcf().dpi)
67 # matplotlib.pyplot.ion()
66 # matplotlib.pyplot.ion()
68
67
69 def clearFigure(fig):
68 def clearFigure(fig):
70
69
71 fig.clf()
70 fig.clf()
72
71
73 def setWinTitle(fig, title):
72 def setWinTitle(fig, title):
74
73
75 fig.canvas.manager.set_window_title(title)
74 fig.canvas.manager.set_window_title(title)
76
75
77 def setTitle(fig, title):
76 def setTitle(fig, title):
78
77
79 fig.suptitle(title)
78 fig.suptitle(title)
80
79
81 def createAxes(fig, nrow, ncol, xpos, ypos, colspan, rowspan, polar=False):
80 def createAxes(fig, nrow, ncol, xpos, ypos, colspan, rowspan, polar=False):
82
81
83 matplotlib.pyplot.ioff()
82 matplotlib.pyplot.ioff()
84 matplotlib.pyplot.figure(fig.number)
83 matplotlib.pyplot.figure(fig.number)
85 axes = matplotlib.pyplot.subplot2grid((nrow, ncol),
84 axes = matplotlib.pyplot.subplot2grid((nrow, ncol),
86 (xpos, ypos),
85 (xpos, ypos),
87 colspan=colspan,
86 colspan=colspan,
88 rowspan=rowspan,
87 rowspan=rowspan,
89 polar=polar)
88 polar=polar)
90
89
90 axes.grid(True)
91 matplotlib.pyplot.ion()
91 matplotlib.pyplot.ion()
92 return axes
92 return axes
93
93
94 def setAxesText(ax, text):
94 def setAxesText(ax, text):
95
95
96 ax.annotate(text,
96 ax.annotate(text,
97 xy = (.1, .99),
97 xy = (.1, .99),
98 xycoords = 'figure fraction',
98 xycoords = 'figure fraction',
99 horizontalalignment = 'left',
99 horizontalalignment = 'left',
100 verticalalignment = 'top',
100 verticalalignment = 'top',
101 fontsize = 10)
101 fontsize = 10)
102
102
103 def printLabels(ax, xlabel, ylabel, title):
103 def printLabels(ax, xlabel, ylabel, title):
104
104
105 ax.set_xlabel(xlabel, size=11)
105 ax.set_xlabel(xlabel, size=11)
106 ax.set_ylabel(ylabel, size=11)
106 ax.set_ylabel(ylabel, size=11)
107 ax.set_title(title, size=8)
107 ax.set_title(title, size=8)
108
108
109 def createPline(ax, x, y, xmin, xmax, ymin, ymax, xlabel='', ylabel='', title='',
109 def createPline(ax, x, y, xmin, xmax, ymin, ymax, xlabel='', ylabel='', title='',
110 ticksize=9, xtick_visible=True, ytick_visible=True,
110 ticksize=9, xtick_visible=True, ytick_visible=True,
111 nxticks=4, nyticks=10,
111 nxticks=4, nyticks=10,
112 grid=None,color='blue'):
112 grid=None,color='blue'):
113
113
114 """
114 """
115
115
116 Input:
116 Input:
117 grid : None, 'both', 'x', 'y'
117 grid : None, 'both', 'x', 'y'
118 """
118 """
119
119
120 matplotlib.pyplot.ioff()
120 matplotlib.pyplot.ioff()
121
121
122 ax.set_xlim([xmin,xmax])
122 ax.set_xlim([xmin,xmax])
123 ax.set_ylim([ymin,ymax])
123 ax.set_ylim([ymin,ymax])
124
124
125 printLabels(ax, xlabel, ylabel, title)
125 printLabels(ax, xlabel, ylabel, title)
126
126
127 ######################################################
127 ######################################################
128 if (xmax-xmin)<=1:
128 if (xmax-xmin)<=1:
129 xtickspos = numpy.linspace(xmin,xmax,nxticks)
129 xtickspos = numpy.linspace(xmin,xmax,nxticks)
130 xtickspos = numpy.array([float("%.1f"%i) for i in xtickspos])
130 xtickspos = numpy.array([float("%.1f"%i) for i in xtickspos])
131 ax.set_xticks(xtickspos)
131 ax.set_xticks(xtickspos)
132 else:
132 else:
133 xtickspos = numpy.arange(nxticks)*int((xmax-xmin)/(nxticks)) + int(xmin)
133 xtickspos = numpy.arange(nxticks)*int((xmax-xmin)/(nxticks)) + int(xmin)
134 # xtickspos = numpy.arange(nxticks)*float(xmax-xmin)/float(nxticks) + int(xmin)
134 # xtickspos = numpy.arange(nxticks)*float(xmax-xmin)/float(nxticks) + int(xmin)
135 ax.set_xticks(xtickspos)
135 ax.set_xticks(xtickspos)
136
136
137 for tick in ax.get_xticklabels():
137 for tick in ax.get_xticklabels():
138 tick.set_visible(xtick_visible)
138 tick.set_visible(xtick_visible)
139
139
140 for tick in ax.xaxis.get_major_ticks():
140 for tick in ax.xaxis.get_major_ticks():
141 tick.label.set_fontsize(ticksize)
141 tick.label.set_fontsize(ticksize)
142
142
143 ######################################################
143 ######################################################
144 for tick in ax.get_yticklabels():
144 for tick in ax.get_yticklabels():
145 tick.set_visible(ytick_visible)
145 tick.set_visible(ytick_visible)
146
146
147 for tick in ax.yaxis.get_major_ticks():
147 for tick in ax.yaxis.get_major_ticks():
148 tick.label.set_fontsize(ticksize)
148 tick.label.set_fontsize(ticksize)
149
149
150 ax.plot(x, y, color=color)
150 ax.plot(x, y, color=color)
151 iplot = ax.lines[-1]
151 iplot = ax.lines[-1]
152
152
153 ######################################################
153 ######################################################
154 if '0.' in matplotlib.__version__[0:2]:
154 if '0.' in matplotlib.__version__[0:2]:
155 print "The matplotlib version has to be updated to 1.1 or newer"
155 print "The matplotlib version has to be updated to 1.1 or newer"
156 return iplot
156 return iplot
157
157
158 if '1.0.' in matplotlib.__version__[0:4]:
158 if '1.0.' in matplotlib.__version__[0:4]:
159 print "The matplotlib version has to be updated to 1.1 or newer"
159 print "The matplotlib version has to be updated to 1.1 or newer"
160 return iplot
160 return iplot
161
161
162 if grid != None:
162 if grid != None:
163 ax.grid(b=True, which='major', axis=grid)
163 ax.grid(b=True, which='major', axis=grid)
164
164
165 matplotlib.pyplot.tight_layout()
165 matplotlib.pyplot.tight_layout()
166
166
167 matplotlib.pyplot.ion()
167 matplotlib.pyplot.ion()
168
168
169 return iplot
169 return iplot
170
170
171 def set_linedata(ax, x, y, idline):
171 def set_linedata(ax, x, y, idline):
172
172
173 ax.lines[idline].set_data(x,y)
173 ax.lines[idline].set_data(x,y)
174
174
175 def pline(iplot, x, y, xlabel='', ylabel='', title=''):
175 def pline(iplot, x, y, xlabel='', ylabel='', title=''):
176
176
177 ax = iplot.get_axes()
177 ax = iplot.get_axes()
178
178
179 printLabels(ax, xlabel, ylabel, title)
179 printLabels(ax, xlabel, ylabel, title)
180
180
181 set_linedata(ax, x, y, idline=0)
181 set_linedata(ax, x, y, idline=0)
182
182
183 def addpline(ax, x, y, color, linestyle, lw):
183 def addpline(ax, x, y, color, linestyle, lw):
184
184
185 ax.plot(x,y,color=color,linestyle=linestyle,lw=lw)
185 ax.plot(x,y,color=color,linestyle=linestyle,lw=lw)
186
186
187
187
188 def createPcolor(ax, x, y, z, xmin, xmax, ymin, ymax, zmin, zmax,
188 def createPcolor(ax, x, y, z, xmin, xmax, ymin, ymax, zmin, zmax,
189 xlabel='', ylabel='', title='', ticksize = 9,
189 xlabel='', ylabel='', title='', ticksize = 9,
190 colormap='jet',cblabel='', cbsize="5%",
190 colormap='jet',cblabel='', cbsize="5%",
191 XAxisAsTime=False):
191 XAxisAsTime=False):
192
192
193 matplotlib.pyplot.ioff()
193 matplotlib.pyplot.ioff()
194
194
195 divider = make_axes_locatable(ax)
195 divider = make_axes_locatable(ax)
196 ax_cb = divider.new_horizontal(size=cbsize, pad=0.05)
196 ax_cb = divider.new_horizontal(size=cbsize, pad=0.05)
197 fig = ax.get_figure()
197 fig = ax.get_figure()
198 fig.add_axes(ax_cb)
198 fig.add_axes(ax_cb)
199
199
200 ax.set_xlim([xmin,xmax])
200 ax.set_xlim([xmin,xmax])
201 ax.set_ylim([ymin,ymax])
201 ax.set_ylim([ymin,ymax])
202
202
203 printLabels(ax, xlabel, ylabel, title)
203 printLabels(ax, xlabel, ylabel, title)
204
204
205 z = numpy.ma.masked_invalid(z)
205 z = numpy.ma.masked_invalid(z)
206 cmap=matplotlib.pyplot.get_cmap(colormap)
206 cmap=matplotlib.pyplot.get_cmap(colormap)
207 cmap.set_bad('white', 1.)
207 cmap.set_bad('white',1.)
208 imesh = ax.pcolormesh(x,y,z.T, vmin=zmin, vmax=zmax, cmap=cmap)
208 imesh = ax.pcolormesh(x,y,z.T, vmin=zmin, vmax=zmax, cmap=cmap)
209 cb = matplotlib.pyplot.colorbar(imesh, cax=ax_cb)
209 cb = matplotlib.pyplot.colorbar(imesh, cax=ax_cb)
210 cb.set_label(cblabel)
210 cb.set_label(cblabel)
211
211
212 # for tl in ax_cb.get_yticklabels():
212 # for tl in ax_cb.get_yticklabels():
213 # tl.set_visible(True)
213 # tl.set_visible(True)
214
214
215 for tick in ax.yaxis.get_major_ticks():
215 for tick in ax.yaxis.get_major_ticks():
216 tick.label.set_fontsize(ticksize)
216 tick.label.set_fontsize(ticksize)
217
217
218 for tick in ax.xaxis.get_major_ticks():
218 for tick in ax.xaxis.get_major_ticks():
219 tick.label.set_fontsize(ticksize)
219 tick.label.set_fontsize(ticksize)
220
220
221 for tick in cb.ax.get_yticklabels():
221 for tick in cb.ax.get_yticklabels():
222 tick.set_fontsize(ticksize)
222 tick.set_fontsize(ticksize)
223
223
224 ax_cb.yaxis.tick_right()
224 ax_cb.yaxis.tick_right()
225
225
226 if '0.' in matplotlib.__version__[0:2]:
226 if '0.' in matplotlib.__version__[0:2]:
227 print "The matplotlib version has to be updated to 1.1 or newer"
227 print "The matplotlib version has to be updated to 1.1 or newer"
228 return imesh
228 return imesh
229
229
230 if '1.0.' in matplotlib.__version__[0:4]:
230 if '1.0.' in matplotlib.__version__[0:4]:
231 print "The matplotlib version has to be updated to 1.1 or newer"
231 print "The matplotlib version has to be updated to 1.1 or newer"
232 return imesh
232 return imesh
233
233
234 matplotlib.pyplot.tight_layout()
234 matplotlib.pyplot.tight_layout()
235
235
236 if XAxisAsTime:
236 if XAxisAsTime:
237
237
238 func = lambda x, pos: ('%s') %(datetime.datetime.utcfromtimestamp(x).strftime("%H:%M:%S"))
238 func = lambda x, pos: ('%s') %(datetime.datetime.utcfromtimestamp(x).strftime("%H:%M:%S"))
239 ax.xaxis.set_major_formatter(FuncFormatter(func))
239 ax.xaxis.set_major_formatter(FuncFormatter(func))
240 ax.xaxis.set_major_locator(LinearLocator(7))
240 ax.xaxis.set_major_locator(LinearLocator(7))
241
241 ax.grid(True)
242 matplotlib.pyplot.ion()
242 matplotlib.pyplot.ion()
243 return imesh
243 return imesh
244
244
245 def pcolor(imesh, z, xlabel='', ylabel='', title=''):
245 def pcolor(imesh, z, xlabel='', ylabel='', title=''):
246
246
247 z = z.T
247 z = z.T
248 ax = imesh.get_axes()
248 ax = imesh.get_axes()
249 printLabels(ax, xlabel, ylabel, title)
249 printLabels(ax, xlabel, ylabel, title)
250 imesh.set_array(z.ravel())
250 imesh.set_array(z.ravel())
251 ax.grid(True)
251
252
252 def addpcolor(ax, x, y, z, zmin, zmax, xlabel='', ylabel='', title='', colormap='jet'):
253 def addpcolor(ax, x, y, z, zmin, zmax, xlabel='', ylabel='', title='', colormap='jet'):
253
254
254 printLabels(ax, xlabel, ylabel, title)
255 printLabels(ax, xlabel, ylabel, title)
255
256 ax.pcolormesh(x,y,z.T,vmin=zmin,vmax=zmax, cmap=matplotlib.pyplot.get_cmap(colormap))
256 ax.pcolormesh(x,y,z.T,vmin=zmin,vmax=zmax, cmap=matplotlib.pyplot.get_cmap(colormap))
257 ax.grid(True)
257
258
258 def addpcolorbuffer(ax, x, y, z, zmin, zmax, xlabel='', ylabel='', title='', colormap='jet'):
259 def addpcolorbuffer(ax, x, y, z, zmin, zmax, xlabel='', ylabel='', title='', colormap='jet'):
259
260
260 printLabels(ax, xlabel, ylabel, title)
261 printLabels(ax, xlabel, ylabel, title)
261
262
262 ax.collections.remove(ax.collections[0])
263 ax.collections.remove(ax.collections[0])
263
264
264 z = numpy.ma.masked_invalid(z)
265 z = numpy.ma.masked_invalid(z)
265
266
266 cmap=matplotlib.pyplot.get_cmap(colormap)
267 cmap=matplotlib.pyplot.get_cmap(colormap)
267 cmap.set_bad('white', 1.)
268 cmap.set_bad('white',1.)
268
269
269
270 ax.pcolormesh(x,y,z.T,vmin=zmin,vmax=zmax, cmap=cmap)
270 ax.pcolormesh(x,y,z.T,vmin=zmin,vmax=zmax, cmap=cmap)
271 ax.grid(True)
271
272
272 def createPmultiline(ax, x, y, xmin, xmax, ymin, ymax, xlabel='', ylabel='', title='', legendlabels=None,
273 def createPmultiline(ax, x, y, xmin, xmax, ymin, ymax, xlabel='', ylabel='', title='', legendlabels=None,
273 ticksize=9, xtick_visible=True, ytick_visible=True,
274 ticksize=9, xtick_visible=True, ytick_visible=True,
274 nxticks=4, nyticks=10,
275 nxticks=4, nyticks=10,
275 grid=None):
276 grid=None):
276
277
277 """
278 """
278
279
279 Input:
280 Input:
280 grid : None, 'both', 'x', 'y'
281 grid : None, 'both', 'x', 'y'
281 """
282 """
282
283
283 matplotlib.pyplot.ioff()
284 matplotlib.pyplot.ioff()
284
285
285 lines = ax.plot(x.T, y)
286 lines = ax.plot(x.T, y)
286 leg = ax.legend(lines, legendlabels, loc='upper right')
287 leg = ax.legend(lines, legendlabels, loc='upper right')
287 leg.get_frame().set_alpha(0.5)
288 leg.get_frame().set_alpha(0.5)
288 ax.set_xlim([xmin,xmax])
289 ax.set_xlim([xmin,xmax])
289 ax.set_ylim([ymin,ymax])
290 ax.set_ylim([ymin,ymax])
290 printLabels(ax, xlabel, ylabel, title)
291 printLabels(ax, xlabel, ylabel, title)
291
292
292 xtickspos = numpy.arange(nxticks)*int((xmax-xmin)/(nxticks)) + int(xmin)
293 xtickspos = numpy.arange(nxticks)*int((xmax-xmin)/(nxticks)) + int(xmin)
293 ax.set_xticks(xtickspos)
294 ax.set_xticks(xtickspos)
294
295
295 for tick in ax.get_xticklabels():
296 for tick in ax.get_xticklabels():
296 tick.set_visible(xtick_visible)
297 tick.set_visible(xtick_visible)
297
298
298 for tick in ax.xaxis.get_major_ticks():
299 for tick in ax.xaxis.get_major_ticks():
299 tick.label.set_fontsize(ticksize)
300 tick.label.set_fontsize(ticksize)
300
301
301 for tick in ax.get_yticklabels():
302 for tick in ax.get_yticklabels():
302 tick.set_visible(ytick_visible)
303 tick.set_visible(ytick_visible)
303
304
304 for tick in ax.yaxis.get_major_ticks():
305 for tick in ax.yaxis.get_major_ticks():
305 tick.label.set_fontsize(ticksize)
306 tick.label.set_fontsize(ticksize)
306
307
307 iplot = ax.lines[-1]
308 iplot = ax.lines[-1]
308
309
309 if '0.' in matplotlib.__version__[0:2]:
310 if '0.' in matplotlib.__version__[0:2]:
310 print "The matplotlib version has to be updated to 1.1 or newer"
311 print "The matplotlib version has to be updated to 1.1 or newer"
311 return iplot
312 return iplot
312
313
313 if '1.0.' in matplotlib.__version__[0:4]:
314 if '1.0.' in matplotlib.__version__[0:4]:
314 print "The matplotlib version has to be updated to 1.1 or newer"
315 print "The matplotlib version has to be updated to 1.1 or newer"
315 return iplot
316 return iplot
316
317
317 if grid != None:
318 if grid != None:
318 ax.grid(b=True, which='major', axis=grid)
319 ax.grid(b=True, which='major', axis=grid)
319
320
320 matplotlib.pyplot.tight_layout()
321 matplotlib.pyplot.tight_layout()
321
322
322 matplotlib.pyplot.ion()
323 matplotlib.pyplot.ion()
323
324
324 return iplot
325 return iplot
325
326
326
327
327 def pmultiline(iplot, x, y, xlabel='', ylabel='', title=''):
328 def pmultiline(iplot, x, y, xlabel='', ylabel='', title=''):
328
329
329 ax = iplot.get_axes()
330 ax = iplot.get_axes()
330
331
331 printLabels(ax, xlabel, ylabel, title)
332 printLabels(ax, xlabel, ylabel, title)
332
333
333 for i in range(len(ax.lines)):
334 for i in range(len(ax.lines)):
334 line = ax.lines[i]
335 line = ax.lines[i]
335 line.set_data(x[i,:],y)
336 line.set_data(x[i,:],y)
336
337
337 def createPmultilineYAxis(ax, x, y, xmin, xmax, ymin, ymax, xlabel='', ylabel='', title='', legendlabels=None,
338 def createPmultilineYAxis(ax, x, y, xmin, xmax, ymin, ymax, xlabel='', ylabel='', title='', legendlabels=None,
338 ticksize=9, xtick_visible=True, ytick_visible=True,
339 ticksize=9, xtick_visible=True, ytick_visible=True,
339 nxticks=4, nyticks=10, marker='.', markersize=10, linestyle="None",
340 nxticks=4, nyticks=10, marker='.', markersize=10, linestyle="None",
340 grid=None, XAxisAsTime=False):
341 grid=None, XAxisAsTime=False):
341
342
342 """
343 """
343
344
344 Input:
345 Input:
345 grid : None, 'both', 'x', 'y'
346 grid : None, 'both', 'x', 'y'
346 """
347 """
347
348
348 matplotlib.pyplot.ioff()
349 matplotlib.pyplot.ioff()
349
350
350 # lines = ax.plot(x, y.T, marker=marker,markersize=markersize,linestyle=linestyle)
351 # lines = ax.plot(x, y.T, marker=marker,markersize=markersize,linestyle=linestyle)
351 lines = ax.plot(x, y.T)
352 lines = ax.plot(x, y.T)
352 # leg = ax.legend(lines, legendlabels, loc=2, bbox_to_anchor=(1.01, 1.00), numpoints=1, handlelength=1.5, \
353 # leg = ax.legend(lines, legendlabels, loc=2, bbox_to_anchor=(1.01, 1.00), numpoints=1, handlelength=1.5, \
353 # handletextpad=0.5, borderpad=0.5, labelspacing=0.5, borderaxespad=0.)
354 # handletextpad=0.5, borderpad=0.5, labelspacing=0.5, borderaxespad=0.)
354
355
355 leg = ax.legend(lines, legendlabels,
356 leg = ax.legend(lines, legendlabels,
356 loc='upper right', bbox_to_anchor=(1.16, 1), borderaxespad=0)
357 loc='upper right', bbox_to_anchor=(1.16, 1), borderaxespad=0)
357
358
358 for label in leg.get_texts(): label.set_fontsize(9)
359 for label in leg.get_texts(): label.set_fontsize(9)
359
360
360 ax.set_xlim([xmin,xmax])
361 ax.set_xlim([xmin,xmax])
361 ax.set_ylim([ymin,ymax])
362 ax.set_ylim([ymin,ymax])
362 printLabels(ax, xlabel, ylabel, title)
363 printLabels(ax, xlabel, ylabel, title)
363
364
364 # xtickspos = numpy.arange(nxticks)*int((xmax-xmin)/(nxticks)) + int(xmin)
365 # xtickspos = numpy.arange(nxticks)*int((xmax-xmin)/(nxticks)) + int(xmin)
365 # ax.set_xticks(xtickspos)
366 # ax.set_xticks(xtickspos)
366
367
367 for tick in ax.get_xticklabels():
368 for tick in ax.get_xticklabels():
368 tick.set_visible(xtick_visible)
369 tick.set_visible(xtick_visible)
369
370
370 for tick in ax.xaxis.get_major_ticks():
371 for tick in ax.xaxis.get_major_ticks():
371 tick.label.set_fontsize(ticksize)
372 tick.label.set_fontsize(ticksize)
372
373
373 for tick in ax.get_yticklabels():
374 for tick in ax.get_yticklabels():
374 tick.set_visible(ytick_visible)
375 tick.set_visible(ytick_visible)
375
376
376 for tick in ax.yaxis.get_major_ticks():
377 for tick in ax.yaxis.get_major_ticks():
377 tick.label.set_fontsize(ticksize)
378 tick.label.set_fontsize(ticksize)
378
379
379 iplot = ax.lines[-1]
380 iplot = ax.lines[-1]
380
381
381 if '0.' in matplotlib.__version__[0:2]:
382 if '0.' in matplotlib.__version__[0:2]:
382 print "The matplotlib version has to be updated to 1.1 or newer"
383 print "The matplotlib version has to be updated to 1.1 or newer"
383 return iplot
384 return iplot
384
385
385 if '1.0.' in matplotlib.__version__[0:4]:
386 if '1.0.' in matplotlib.__version__[0:4]:
386 print "The matplotlib version has to be updated to 1.1 or newer"
387 print "The matplotlib version has to be updated to 1.1 or newer"
387 return iplot
388 return iplot
388
389
389 if grid != None:
390 if grid != None:
390 ax.grid(b=True, which='major', axis=grid)
391 ax.grid(b=True, which='major', axis=grid)
391
392
392 matplotlib.pyplot.tight_layout()
393 matplotlib.pyplot.tight_layout()
393
394
394 if XAxisAsTime:
395 if XAxisAsTime:
395
396
396 func = lambda x, pos: ('%s') %(datetime.datetime.utcfromtimestamp(x).strftime("%H:%M:%S"))
397 func = lambda x, pos: ('%s') %(datetime.datetime.utcfromtimestamp(x).strftime("%H:%M:%S"))
397 ax.xaxis.set_major_formatter(FuncFormatter(func))
398 ax.xaxis.set_major_formatter(FuncFormatter(func))
398 ax.xaxis.set_major_locator(LinearLocator(7))
399 ax.xaxis.set_major_locator(LinearLocator(7))
399
400
400 matplotlib.pyplot.ion()
401 matplotlib.pyplot.ion()
401
402
402 return iplot
403 return iplot
403
404
404 def pmultilineyaxis(iplot, x, y, xlabel='', ylabel='', title=''):
405 def pmultilineyaxis(iplot, x, y, xlabel='', ylabel='', title=''):
405
406
406 ax = iplot.get_axes()
407 ax = iplot.get_axes()
407
408
408 printLabels(ax, xlabel, ylabel, title)
409 printLabels(ax, xlabel, ylabel, title)
409
410
410 for i in range(len(ax.lines)):
411 for i in range(len(ax.lines)):
411 line = ax.lines[i]
412 line = ax.lines[i]
412 line.set_data(x,y[i,:])
413 line.set_data(x,y[i,:])
413
414
414 def createPolar(ax, x, y,
415 def createPolar(ax, x, y,
415 xlabel='', ylabel='', title='', ticksize = 9,
416 xlabel='', ylabel='', title='', ticksize = 9,
416 colormap='jet',cblabel='', cbsize="5%",
417 colormap='jet',cblabel='', cbsize="5%",
417 XAxisAsTime=False):
418 XAxisAsTime=False):
418
419
419 matplotlib.pyplot.ioff()
420 matplotlib.pyplot.ioff()
420
421
421 ax.plot(x,y,'bo', markersize=5)
422 ax.plot(x,y,'bo', markersize=5)
422 # ax.set_rmax(90)
423 # ax.set_rmax(90)
423 ax.set_ylim(0,90)
424 ax.set_ylim(0,90)
424 ax.set_yticks(numpy.arange(0,90,20))
425 ax.set_yticks(numpy.arange(0,90,20))
425 # ax.text(0, -110, ylabel, rotation='vertical', va ='center', ha = 'center' ,size='11')
426 # ax.text(0, -110, ylabel, rotation='vertical', va ='center', ha = 'center' ,size='11')
426 # ax.text(0, 50, ylabel, rotation='vertical', va ='center', ha = 'left' ,size='11')
427 # ax.text(0, 50, ylabel, rotation='vertical', va ='center', ha = 'left' ,size='11')
427 # ax.text(100, 100, 'example', ha='left', va='center', rotation='vertical')
428 # ax.text(100, 100, 'example', ha='left', va='center', rotation='vertical')
428 ax.yaxis.labelpad = 230
429 ax.yaxis.labelpad = 230
429 printLabels(ax, xlabel, ylabel, title)
430 printLabels(ax, xlabel, ylabel, title)
430 iplot = ax.lines[-1]
431 iplot = ax.lines[-1]
431
432
432 if '0.' in matplotlib.__version__[0:2]:
433 if '0.' in matplotlib.__version__[0:2]:
433 print "The matplotlib version has to be updated to 1.1 or newer"
434 print "The matplotlib version has to be updated to 1.1 or newer"
434 return iplot
435 return iplot
435
436
436 if '1.0.' in matplotlib.__version__[0:4]:
437 if '1.0.' in matplotlib.__version__[0:4]:
437 print "The matplotlib version has to be updated to 1.1 or newer"
438 print "The matplotlib version has to be updated to 1.1 or newer"
438 return iplot
439 return iplot
439
440
440 # if grid != None:
441 # if grid != None:
441 # ax.grid(b=True, which='major', axis=grid)
442 # ax.grid(b=True, which='major', axis=grid)
442
443
443 matplotlib.pyplot.tight_layout()
444 matplotlib.pyplot.tight_layout()
444
445
445 matplotlib.pyplot.ion()
446 matplotlib.pyplot.ion()
446
447
447
448
448 return iplot
449 return iplot
449
450
450 def polar(iplot, x, y, xlabel='', ylabel='', title=''):
451 def polar(iplot, x, y, xlabel='', ylabel='', title=''):
451
452
452 ax = iplot.get_axes()
453 ax = iplot.get_axes()
453
454
454 # ax.text(0, -110, ylabel, rotation='vertical', va ='center', ha = 'center',size='11')
455 # ax.text(0, -110, ylabel, rotation='vertical', va ='center', ha = 'center',size='11')
455 printLabels(ax, xlabel, ylabel, title)
456 printLabels(ax, xlabel, ylabel, title)
456
457
457 set_linedata(ax, x, y, idline=0)
458 set_linedata(ax, x, y, idline=0)
458
459
459 def draw(fig):
460 def draw(fig):
460
461
461 if type(fig) == 'int':
462 if type(fig) == 'int':
462 raise ValueError, "Error drawing: Fig parameter should be a matplotlib figure object figure"
463 raise ValueError, "Error drawing: Fig parameter should be a matplotlib figure object figure"
463
464
464 fig.canvas.draw()
465 fig.canvas.draw()
465
466
466 def pause(interval=0.000001):
467 def pause(interval=0.000001):
467
468
468 matplotlib.pyplot.pause(interval)
469 matplotlib.pyplot.pause(interval)
General Comments 0
You need to be logged in to leave comments. Login now