def plot_dft_angles(snap_times,angles,amps,sim_time,logx=False,logy=False,plot_wheel=False,lw=1.5,cmap='hsv',wheel_axis=None,label_size=10): """ Plot 2D-DFT amplitudes at a specific frequency as a function of time and angle """ if logy : pl.gca().set_yscale('log') if logx : pl.gca().set_xscale('log') ax=pl.gca() custom_axes() ax.set_xlim(snap_times[1] if pl.gca().get_xscale()=='log' else 0,sim_time) det_lines = LineCollection([list(zip(snap_times[1:], amp[1:])) for amp in amps], linewidths=lw, linestyles='-') ax.set_ylim((np.amin(amps), np.amax(amps))) det_lines.set_array(angles) det_lines.set_clim(0,180) det_lines.set_cmap(cmap) ax.add_collection(det_lines) pl.sci(det_lines) if plot_wheel is True: color_steps = 2056 pos = ax.get_position() wheel_pos= [pos.x0+pos.width/20., pos.y0+pos.height*0.7, pos.width / 4.0, pos.height / 4.0] if wheel_axis is None: wheel_axis = pl.gcf().add_axes(wheel_pos, projection='polar') else: wheel_axis.projection='polar' wheel_axis._direction = 2*np.pi norm = matplotlib.colors.Normalize(0.0, 180.) cb = matplotlib.colorbar.ColorbarBase(wheel_axis, cmap=cm.get_cmap(cmap,color_steps), norm=norm, orientation='horizontal',ticks=[0, 30, 60, 90, 120,150]) cb.ax.tick_params(labelsize=label_size) cb.outline.set_visible(False) return ax
def _plot(self): import pylab # per http://sourceforge.net/tracker/index.php?func=detail&aid=1656374&group_id=80706&atid=560720 # although seems to no longer be needed with matplotlib >= 0.91.1 pylab.sci(self.image) datamin = self._getLimit(('datamin', 'zmin')) datamax = self._getLimit(('datamax', 'zmax')) if datamin is None or datamax is None: datamin, datamax = self._autoscale(vars=self.vars, datamin=datamin, datamax=datamax) pylab.clim(vmax=datamax, vmin=datamin) self.image.set_data(self._getData())
# Manually find the min and max of all colors for # use in setting the color scale. vmin = min(vmin, amin(dd)) vmax = max(vmax, amax(dd)) images.append(a.imshow(data, cmap=cmap)) ax.append(a) # Set the first image as the master, with all the others # observing it for changes in cmap or norm. norm = colors.normalize(vmin=vmin, vmax=vmax) for i, im in enumerate(images): im.set_norm(norm) if i > 0: images[0].add_observer(im) # The colorbar is also based on this master image. fig.colorbar(images[0], cax, orientation='horizontal') # We need the following only if we want to run this # script interactively and be able to change the colormap. pylab.sci(images[0]) pylab.show()