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