def run(p1_name, heuristic1, p2_name, heuristic2, times): rounds = times #black p1_color = "B" p1_win = 0 #white p2_color = "W" p2_win = 0 ties = 0 for i in range(rounds): print 'Started game %s' % i game = Game(p1_color="B", p1_mode="C", p2_mode="C") game.start() winner = play_game(game, heuristic1, heuristic2) if winner == p1_color: p1_win += 1 print '>>>>>>>>>>>>>>>>>>> %s win!' % (p1_name) elif winner == p2_color: p2_win += 1 print '>>>>>>>>>>>>>>>>>>> %s win!'% (p2_name) else: print 'Tie.' ties += 1 print 'finished game %s' % i print 'After %s rounds:\n' % rounds print '%s: %s ' % (p1_name, p1_win) print '%s: %s' % (p2_name, p2_win) print 'ties: %s' % ties print 'Probabilities:' print '%s: %s' % (p1_name, str(p1_win/float(rounds))) print '%s: %s' % (p2_name, str(p2_win/float(rounds))) print 'ties: %s' % str(ties/float(rounds)) graphics.plot(p1_name, p1_win, p2_name, p2_win, ties)
from erode import * from config import * from time import time import matplotlib.pyplot as plt from map import Map, set_up_landscape from graphics import plot, plot_gradient, plot3d scatter = False size = 128 runs = 1000 debug = Map.of(size) set_up_landscape(debug, 1, skip_levels) debug.blur(2) plot(debug.E, file="debug-before.png") trs = [] start = time() for count in range(runs): if count % 4 == 0: print("%5.2f%%" % (count / runs * 100)) trs += erode(debug, 100, 100) end = time() print("Took %6.2fs" % (end - start)) plot3d(debug.E, file="debug-carved.png")
dpi=300, bbox_inches='tight') # If desired, display the plot to the screen if display: matplotlib.pyplot.show() if closeFigure: matplotlib.pyplot.close('all') if __name__ == '__main__': import graphics import numpy import os x = [] y = [] label = [] for i in range(6): x += [numpy.arange(11)] y += [(i + 1) * x[i]] label += ['$y = %ix$' % i] saveFilename = 'plot.pdf' graphics.plot(x[0], y[0]) graphics.plot(x, y) graphics.plot(x, y, label=label, saveFilename=saveFilename)
def go(self): var = self.metadata['ceof']['var'] if ('Lat' not in self.keys()) or ('Lon' not in self.keys()): self.data['Lon'], self.data['Lat'] = numpy.meshgrid( self.data['lon'], self.data['lat']) if 'prefilter' in self.metadata: print "Filtering in time" if self.metadata['prefilter']['type'] == 'bandpass': self.filter( var, l=self.metadata['prefilter']['l'], type=self.metadata['prefilter']['type'], l2=self.metadata['prefilter']['l2'], ) else: self.filter(var, l=self.metadata['prefilter']['l'], type=self.metadata['prefilter']['type']) # ---- Normalize ----------------------------------------------------- #self.data['ssh']=self.data['ssh']-self.data['ssh'].mean() # -------------------------------------------------------------------- ind = ma.getmaskarray(self.data[var]).any(axis=0) == False I, J, K = self.data[var].shape if 'ceof_coord' in self.metadata: coord = self.metadata['ceof_coord'] assert type(coord) == list from shapely.geometry import Point, Polygon polygon = Polygon(coord) for j in range(J): for k in range(K): ind[j, k] = ind[j, k] & polygon.intersects( Point(self.data['Lon'][j, k], self.data['Lat'][j, k])) #ind = ind&tmp N = int((numpy.ones(ind.shape)[ind]).sum()) grid_index = ma.masked_all((N, 2), dtype='i') n = -1 for j in range(J): for k in range(K): if ind[j, k]: n += 1 grid_index[n, :] = [j, k] self.grid_index = grid_index data2D = numpy.zeros((I, N), dtype=self.data[var].dtype) for n, ind in enumerate(self.grid_index): data2D[:, n] = self.data[var][:, ind[0], ind[1]] print "Running CEOF_2D()" output = CEOF_2D(data2D, cfg=self.metadata['ceof']) nmodes = len(output['lambdas']) for k in [k for k in output.keys() if k is not 'ceof']: self.data[k] = output[k] self.data['eofs'] = ma.masked_all((J, K, nmodes), dtype='complex128') for n, ind in enumerate(self.grid_index): self.data['eofs'][ind[0], ind[1], :] = output['eofs'][n, :] # ---- self.set_wavelenght() #for k in self.data.keys(): # print k, self.data[k].shape, type(self.data[k]) if 'figs' in self.metadata: print "Creating figures for %s modes" % nmodes #for nmode in range(5): #for n in range(10): for n in range(nmodes): #eof2D=ceof['eofs'][:,nmode] #pc2D=ceof['pcs'][:,nmode] ## ##eof=ma.masked_all(self.data['ssh'].shape[1:],dtype=eofs.dtype) #eof=ma.masked_all(self.data['ssh'].shape[1:],dtype='complex128') ##pc=ma.masked_all(self.data['ssh'].shape[1:],dtype=pcs.dtype) #pc=ma.masked_all(self.data['ssh'].shape[1:],dtype='complex128') ## ##for n,i in enumerate(ind): ## ## ---- 2D back to grid ---- #for n,ind in enumerate(self.data2D['grid_index']): # #print n,ind # eof[ind[0],ind[1]] = eof2D[n] # #pc[ind[0],ind[1]] = pc2D[n] #pc = pc2D #print pc2D.shape #varfrac = round(getvariancefraction(lambdas)[nmode]*1e2) #varfrac = ceof['variancefraction'][nmode] #fig = self.plot(eof_amp,eof_phase,pc_amp,pc_phase,nmode,varfrac) if 'suffix' in self.metadata['figs']: filename = "../figs/CEOF_%s_mode%s.eps" % ( self.metadata['figs']['suffix'], (n + 1)) else: filename = "../figs/CEOF_mode%s.eps" % (n + 1) limits = { 'LatIni': -5, 'LatFin': 15, 'LonIni': -60, 'LonFin': -25 } #self.plot(self['eofs'][:,:,n],self['pcs'][:,n],(n+1),self['variancefraction'][n],filename=filename,limits=limits,cumvarfrac=self['variancefraction'][:(n+1)].sum()) import graphics graphics.plot(self['eofs'][:, :, n], self['pcs'][:, n], (n + 1), self['variancefraction'][n], filename=filename, data=self.data, limits=limits, cumvarfrac=self['variancefraction'][:(n + 1)].sum())
def plotboth(file): plot(demo.E, file=file) plot3d(demo.E, file=file[:-len(".png")] + "_3d.png")
raise ValueError(msg) @property def wavelengths(self): return self._wavelengths @property def wavelength_minimum(self): return self._wavelengthMinimum @property def wavelength_maximum(self): return self._wavelengthMaximum @property def powers(self): return self._powers if __name__ == '__main__': import graphics import color a = color.CIEReferenceIlluminant('a') d65 = color.CIEReferenceIlluminant() graphics.plot([a.wavelengths, d65.wavelengths], [a.powers, d65.powers], title='CIE Reference Illuminants', xlabel='Wavelength [nm]', ylabel='Power', label=['A', 'D65'])
from erode import * from config import * from time import time import matplotlib.pyplot as plt from map import Map, set_up_landscape from graphics import plot, plot_gradient, plot3d scatter = False size = 128 runs = 1000 debug = Map.of(size) set_up_landscape(debug, 1, skip_levels) debug.blur(2) plot(debug.E, file="debug-before.png") trs = [] start = time() for count in range(runs): if count % 4 == 0: print("%5.2f%%" % (count / runs * 100)) trs += erode(debug, 100, 100) end = time() print("Took %6.2fs" % (end - start)) plot3d(debug.E, file="debug-carved.png")
def plotboth(file): plot(demo.E, file=file) plot3d(demo.E, file=file[:-len(".png")] + "_3d.png")
dt = \ datetime.datetime.strptime(data[idx][0][0:10] + ' ' + data[idx][0][11:-1], '%Y-%m-%d %H:%M:%S.%f') day = \ (dt.toordinal() - datetime.date(dt.year, 1, 1).toordinal() + 1) + \ dt.hour/24 + \ dt.minute/(24*60) + \ dt.second/(24*60*60) days = numpy.append(days, day) # Parse dependent data from the selected column of the logged data dependent = numpy.empty(0, dtype=numpy.float64) for idx in range(start_idx, end_idx): dependent = numpy.append(dependent, float(data[idx][column_selected])) # Plot the specified dependent data as a function of time if minimum_dependent is None or maximum_dependent is None: y_limits = None else: y_limits = [minimum_dependent, maximum_dependent] graphics.plot(days, dependent, xlabel='Day Number [UTC]', ylabel=headers[column_selected], ylim=y_limits, xgrid=True, ygrid=True, display=display, saveFilename=plot_filename)
def go(self): var = self.metadata['ceof']['var'] if ('Lat' not in self.keys()) or ('Lon' not in self.keys()): self.data['Lon'], self.data['Lat'] = numpy.meshgrid(self.data['lon'],self.data['lat']) if 'prefilter' in self.metadata: print "Filtering in time" if self.metadata['prefilter']['type'] == 'bandpass': self.filter(var,l=self.metadata['prefilter']['l'],type=self.metadata['prefilter']['type'], l2=self.metadata['prefilter']['l2'],) else: self.filter(var,l=self.metadata['prefilter']['l'],type=self.metadata['prefilter']['type']) # ---- Normalize ----------------------------------------------------- #self.data['ssh']=self.data['ssh']-self.data['ssh'].mean() # -------------------------------------------------------------------- ind = ma.getmaskarray(self.data[var]).any(axis=0) == False I, J, K = self.data[var].shape if 'ceof_coord' in self.metadata: coord = self.metadata['ceof_coord'] assert type(coord) == list from shapely.geometry import Point, Polygon polygon = Polygon(coord) for j in range(J): for k in range(K): ind[j,k] = ind[j,k] & polygon.intersects( Point(self.data['Lon'][j,k], self.data['Lat'][j,k])) #ind = ind&tmp N = int((numpy.ones(ind.shape)[ind]).sum()) grid_index = ma.masked_all((N,2), dtype='i') n = -1 for j in range(J): for k in range(K): if ind[j, k]: n += 1 grid_index[n, :] = [j, k] self.grid_index = grid_index data2D = numpy.zeros((I,N), dtype=self.data[var].dtype) for n, ind in enumerate(self.grid_index): data2D[:, n] = self.data[var][:,ind[0], ind[1]] print "Running CEOF_2D()" output = CEOF_2D(data2D, cfg=self.metadata['ceof']) nmodes = len(output['lambdas']) for k in [k for k in output.keys() if k is not 'ceof']: self.data[k] = output[k] self.data['eofs'] = ma.masked_all((J, K, nmodes), dtype='complex128') for n,ind in enumerate(self.grid_index): self.data['eofs'][ind[0],ind[1],:] = output['eofs'][n,:] # ---- self.set_wavelenght() #for k in self.data.keys(): # print k, self.data[k].shape, type(self.data[k]) if 'figs' in self.metadata: print "Creating figures for %s modes" % nmodes #for nmode in range(5): #for n in range(10): for n in range(nmodes): #eof2D=ceof['eofs'][:,nmode] #pc2D=ceof['pcs'][:,nmode] ## ##eof=ma.masked_all(self.data['ssh'].shape[1:],dtype=eofs.dtype) #eof=ma.masked_all(self.data['ssh'].shape[1:],dtype='complex128') ##pc=ma.masked_all(self.data['ssh'].shape[1:],dtype=pcs.dtype) #pc=ma.masked_all(self.data['ssh'].shape[1:],dtype='complex128') ## ##for n,i in enumerate(ind): ## ## ---- 2D back to grid ---- #for n,ind in enumerate(self.data2D['grid_index']): # #print n,ind # eof[ind[0],ind[1]] = eof2D[n] # #pc[ind[0],ind[1]] = pc2D[n] #pc = pc2D #print pc2D.shape #varfrac = round(getvariancefraction(lambdas)[nmode]*1e2) #varfrac = ceof['variancefraction'][nmode] #fig = self.plot(eof_amp,eof_phase,pc_amp,pc_phase,nmode,varfrac) if 'suffix' in self.metadata['figs']: filename="../figs/CEOF_%s_mode%s.eps" % (self.metadata['figs']['suffix'],(n+1)) else: filename="../figs/CEOF_mode%s.eps" % (n+1) limits={'LatIni':-5, 'LatFin':15, 'LonIni':-60, 'LonFin':-25} #self.plot(self['eofs'][:,:,n],self['pcs'][:,n],(n+1),self['variancefraction'][n],filename=filename,limits=limits,cumvarfrac=self['variancefraction'][:(n+1)].sum()) import graphics graphics.plot(self['eofs'][:,:,n], self['pcs'][:,n], (n+1),self['variancefraction'][n], filename=filename, data = self.data, limits=limits, cumvarfrac=self['variancefraction'][:(n+1)].sum())
@property def zbars(self): return self._zbars if __name__ == '__main__': import graphics import color standardObserver = color.CIEStandardObserver() graphics.plot([standardObserver.wavelengths, standardObserver.wavelengths, standardObserver.wavelengths], [standardObserver.xbars, standardObserver.ybars, standardObserver.zbars], title='1931 2-degree Standard Observer', xlabel='Wavelength [nm]', ylabel='Response', ylim=[0, 2.5], label=['x-bar', 'y-bar', 'z-bar']) standardObserver = color.CIEStandardObserver('10deg') graphics.plot([standardObserver.wavelengths, standardObserver.wavelengths, standardObserver.wavelengths], [standardObserver.xbars, standardObserver.ybars, standardObserver.zbars], title='1964 10-degree Standard Observer', xlabel='Wavelength [nm]',