##// END OF EJS Templates
Optimizacion del driver para matplotlib. Activacion y descativacion del modo interactivo al crear figures y axes
Miguel Valdez -
r244:b2e7e61d8cbe
parent child
Show More
@@ -1,7 +1,7
1 1 import numpy
2 2 import datetime
3 3 import matplotlib
4 matplotlib.use("TKAgg")
4 matplotlib.use("GTKAgg")
5 5 import matplotlib.pyplot
6 6 import matplotlib.dates
7 7 #import scitools.numpyutils
@@ -22,6 +22,7 def createFigure(idfigure, wintitle, width, height, facecolor="w"):
22 22 fig.canvas.manager.set_window_title(wintitle)
23 23 fig.canvas.manager.resize(width, height)
24 24 matplotlib.pyplot.ion()
25 matplotlib.pyplot.show()
25 26
26 27 return fig
27 28
@@ -33,7 +34,10 def closeFigure():
33 34 return
34 35
35 36 def saveFigure(fig, filename):
37
38 matplotlib.pyplot.ioff()
36 39 fig.savefig(filename)
40 matplotlib.pyplot.ion()
37 41
38 42 def setWinTitle(fig, title):
39 43
@@ -45,11 +49,14 def setTitle(fig, title):
45 49
46 50 def createAxes(fig, nrow, ncol, xpos, ypos, colspan, rowspan):
47 51
52 matplotlib.pyplot.ioff()
48 53 matplotlib.pyplot.figure(fig.number)
49 54 axes = matplotlib.pyplot.subplot2grid((nrow, ncol),
50 55 (xpos, ypos),
51 56 colspan=colspan,
52 57 rowspan=rowspan)
58
59 matplotlib.pyplot.ion()
53 60 return axes
54 61
55 62 def setAxesText(ax, text):
@@ -77,8 +84,9 def createPline(ax, x, y, xmin, xmax, ymin, ymax, xlabel='', ylabel='', title=''
77 84 Input:
78 85 grid : None, 'both', 'x', 'y'
79 86 """
80
81 ax.plot(x, y)
87
88 matplotlib.pyplot.ioff()
89
82 90 ax.set_xlim([xmin,xmax])
83 91 ax.set_ylim([ymin,ymax])
84 92
@@ -105,7 +113,8 def createPline(ax, x, y, xmin, xmax, ymin, ymax, xlabel='', ylabel='', title=''
105 113
106 114 for tick in ax.yaxis.get_major_ticks():
107 115 tick.label.set_fontsize(ticksize)
108
116
117 ax.plot(x, y)
109 118 iplot = ax.lines[-1]
110 119
111 120 ######################################################
@@ -122,8 +131,14 def createPline(ax, x, y, xmin, xmax, ymin, ymax, xlabel='', ylabel='', title=''
122 131
123 132 matplotlib.pyplot.tight_layout()
124 133
134 matplotlib.pyplot.ion()
135
125 136 return iplot
126 137
138 def set_linedata(ax, x, y, idline):
139
140 ax.lines[idline].set_data(x,y)
141
127 142 def pline(iplot, x, y, xlabel='', ylabel='', title=''):
128 143
129 144 ax = iplot.get_axes()
@@ -133,11 +148,79 def pline(iplot, x, y, xlabel='', ylabel='', title=''):
133 148 set_linedata(ax, x, y, idline=0)
134 149
135 150 def addpline(ax, x, y, color, linestyle, lw):
151
136 152 ax.plot(x,y,color=color,linestyle=linestyle,lw=lw)
153
154
155 def createPcolor(ax, x, y, z, xmin, xmax, ymin, ymax, zmin, zmax,
156 xlabel='', ylabel='', title='', ticksize = 9,
157 colormap='jet',cblabel='', cbsize="5%",
158 XAxisAsTime=False):
137 159
160 matplotlib.pyplot.ioff()
138 161
139 def set_linedata(ax, x, y, idline):
140 ax.lines[idline].set_data(x,y)
162 divider = make_axes_locatable(ax)
163 ax_cb = divider.new_horizontal(size=cbsize, pad=0.05)
164 fig = ax.get_figure()
165 fig.add_axes(ax_cb)
166
167 ax.set_xlim([xmin,xmax])
168 ax.set_ylim([ymin,ymax])
169
170 printLabels(ax, xlabel, ylabel, title)
171
172 imesh = ax.pcolormesh(x,y,z.T, vmin=zmin, vmax=zmax, cmap=matplotlib.pyplot.get_cmap(colormap))
173 cb = matplotlib.pyplot.colorbar(imesh, cax=ax_cb)
174 cb.set_label(cblabel)
175
176 # for tl in ax_cb.get_yticklabels():
177 # tl.set_visible(True)
178
179 for tick in ax.yaxis.get_major_ticks():
180 tick.label.set_fontsize(ticksize)
181
182 for tick in ax.xaxis.get_major_ticks():
183 tick.label.set_fontsize(ticksize)
184
185 for tick in cb.ax.get_yticklabels():
186 tick.set_fontsize(ticksize)
187
188 ax_cb.yaxis.tick_right()
189
190 if '0.' in matplotlib.__version__[0:2]:
191 print "The matplotlib version has to be updated to 1.1 or newer"
192 return imesh
193
194 if '1.0.' in matplotlib.__version__[0:4]:
195 print "The matplotlib version has to be updated to 1.1 or newer"
196 return imesh
197
198 matplotlib.pyplot.tight_layout()
199
200 if XAxisAsTime:
201
202 func = lambda x, pos: ('%s') %(datetime.datetime.utcfromtimestamp(x).strftime("%H:%M:%S"))
203 ax.xaxis.set_major_formatter(FuncFormatter(func))
204 ax.xaxis.set_major_locator(LinearLocator(7))
205
206 matplotlib.pyplot.ion()
207 return imesh
208
209 def pcolor(imesh, z, xlabel='', ylabel='', title=''):
210
211 z = z.T
212
213 ax = imesh.get_axes()
214
215 printLabels(ax, xlabel, ylabel, title)
216
217 imesh.set_array(z.ravel())
218
219 def addpcolor(ax, x, y, z, zmin, zmax, xlabel='', ylabel='', title='', colormap='jet'):
220
221 printLabels(ax, xlabel, ylabel, title)
222
223 imesh = ax.pcolormesh(x,y,z.T,vmin=zmin,vmax=zmax, cmap=matplotlib.pyplot.get_cmap(colormap))
141 224
142 225 def createPmultiline(ax, x, y, xmin, xmax, ymin, ymax, xlabel='', ylabel='', title='', legendlabels=None,
143 226 ticksize=9, xtick_visible=True, ytick_visible=True,
@@ -149,7 +232,9 def createPmultiline(ax, x, y, xmin, xmax, ymin, ymax, xlabel='', ylabel='', tit
149 232 Input:
150 233 grid : None, 'both', 'x', 'y'
151 234 """
152
235
236 matplotlib.pyplot.ioff()
237
153 238 lines = ax.plot(x.T, y)
154 239 leg = ax.legend(lines, legendlabels, loc='upper right')
155 240 leg.get_frame().set_alpha(0.5)
@@ -186,7 +271,9 def createPmultiline(ax, x, y, xmin, xmax, ymin, ymax, xlabel='', ylabel='', tit
186 271 ax.grid(b=True, which='major', axis=grid)
187 272
188 273 matplotlib.pyplot.tight_layout()
189
274
275 matplotlib.pyplot.ion()
276
190 277 return iplot
191 278
192 279
@@ -211,6 +298,8 def createPmultilineYAxis(ax, x, y, xmin, xmax, ymin, ymax, xlabel='', ylabel=''
211 298 grid : None, 'both', 'x', 'y'
212 299 """
213 300
301 matplotlib.pyplot.ioff()
302
214 303 lines = ax.plot(x, y.T, marker=marker,markersize=markersize,linestyle=linestyle)
215 304 leg = ax.legend(lines, legendlabels, bbox_to_anchor=(1.05, 1), loc='upper right', numpoints=1, handlelength=1.5, \
216 305 handletextpad=0.5, borderpad=0.2, labelspacing=0.2, borderaxespad=0.)
@@ -255,6 +344,8 def createPmultilineYAxis(ax, x, y, xmin, xmax, ymin, ymax, xlabel='', ylabel=''
255 344 ax.xaxis.set_major_formatter(FuncFormatter(func))
256 345 ax.xaxis.set_major_locator(LinearLocator(7))
257 346
347 matplotlib.pyplot.ion()
348
258 349 return iplot
259 350
260 351 def pmultilineinyaxis(iplot, x, y, xlabel='', ylabel='', title=''):
@@ -266,73 +357,6 def pmultilineinyaxis(iplot, x, y, xlabel='', ylabel='', title=''):
266 357 for i in range(len(ax.lines)):
267 358 line = ax.lines[i]
268 359 line.set_data(x,y[i,:])
269
270 def createPcolor(ax, x, y, z, xmin, xmax, ymin, ymax, zmin, zmax,
271 xlabel='', ylabel='', title='', ticksize = 9,
272 colormap='jet',cblabel='', cbsize="5%",
273 XAxisAsTime=False):
274
275 divider = make_axes_locatable(ax)
276 ax_cb = divider.new_horizontal(size=cbsize, pad=0.05)
277 fig = ax.get_figure()
278 fig.add_axes(ax_cb)
279
280 ax.set_xlim([xmin,xmax])
281 ax.set_ylim([ymin,ymax])
282
283 printLabels(ax, xlabel, ylabel, title)
284
285 imesh = ax.pcolormesh(x,y,z.T, vmin=zmin, vmax=zmax, cmap=matplotlib.pyplot.get_cmap(colormap))
286 cb = matplotlib.pyplot.colorbar(imesh, cax=ax_cb)
287 cb.set_label(cblabel)
288
289 # for tl in ax_cb.get_yticklabels():
290 # tl.set_visible(True)
291
292 for tick in ax.yaxis.get_major_ticks():
293 tick.label.set_fontsize(ticksize)
294
295 for tick in ax.xaxis.get_major_ticks():
296 tick.label.set_fontsize(ticksize)
297
298 for tick in cb.ax.get_yticklabels():
299 tick.set_fontsize(ticksize)
300
301 ax_cb.yaxis.tick_right()
302
303 if '0.' in matplotlib.__version__[0:2]:
304 print "The matplotlib version has to be updated to 1.1 or newer"
305 return imesh
306
307 if '1.0.' in matplotlib.__version__[0:4]:
308 print "The matplotlib version has to be updated to 1.1 or newer"
309 return imesh
310
311 matplotlib.pyplot.tight_layout()
312
313 if XAxisAsTime:
314
315 func = lambda x, pos: ('%s') %(datetime.datetime.utcfromtimestamp(x).strftime("%H:%M:%S"))
316 ax.xaxis.set_major_formatter(FuncFormatter(func))
317 ax.xaxis.set_major_locator(LinearLocator(7))
318
319 return imesh
320
321 def pcolor(imesh, z, xlabel='', ylabel='', title=''):
322
323 z = z.T
324
325 ax = imesh.get_axes()
326
327 printLabels(ax, xlabel, ylabel, title)
328
329 imesh.set_array(z.ravel())
330
331 def addpcolor(ax, x, y, z, zmin, zmax, xlabel='', ylabel='', title='', colormap='jet'):
332
333 printLabels(ax, xlabel, ylabel, title)
334
335 imesh = ax.pcolormesh(x,y,z.T,vmin=zmin,vmax=zmax, cmap=matplotlib.pyplot.get_cmap(colormap))
336 360
337 361 def draw(fig):
338 362
General Comments 0
You need to be logged in to leave comments. Login now