def plot(self, filename=None): """ Plot the `CellVariable` as a contour plot. """ self._plot() datamin = self._getLimit(('datamin', 'zmin')) datamax = self._getLimit(('datamax', 'zmax')) if datamin == 'e': datamin = None if datamax == 'e': datamax = None datamin, datamax = self._autoscale(vars=self.vars, datamin=datamin, datamax=datamax) if datamax == datamin: datamax = datamin + 1e-10 vertexIDs = self.mesh._orderedCellVertexIDs vertexCoords = self.mesh.vertexCoords xCoords = numerix.take(vertexCoords[0], vertexIDs).flatten("FORTRAN") yCoords = numerix.take(vertexCoords[1], vertexIDs).flatten("FORTRAN") import gist import Numeric gist.plfp(Numeric.array(numerix.array(self.vars[0])), yCoords, xCoords, self.mesh._numberOfFacesPerCell, cmin=datamin, cmax=datamax) import fipy.viewers.gistViewer.colorbar colorbar._color_bar(minz=datamin, maxz=datamax, ncol=240, zlabel=self.vars[0].name) _GistViewer.plot(self, filename=filename)
def arrow(x0,y0,x1,y1,color=0,ang=45.0,height=6,width=1.5,lc=None): """Draw an arrow. Description: Draw an arrow from (x0,y0) to (x1,y1) in the current coordinate system. Inputs: x0, y0 -- The beginning point. x1, y1 -- Then ending point. color -- The color of the arrowhead. Number represents an index in the current palette or a negative number or a spelled out basic color. lc -- The color of the line (same as color by default). ang -- The angle of the arrowhead. height -- The height of the arrowhead in points. width -- The width of the arrow line in points. """ if lc is None: lc = color if type(lc) is types.StringType: lc = _colornum[lc] if type(color) is types.StringType: color = _colornum[color] vp = gist.viewport() plotlims = gist.limits() gist.limits(plotlims) conv_factorx = (vp[1]-vp[0]) / (plotlims[1]-plotlims[0]) conv_factory = (vp[3]-vp[2]) / (plotlims[3]-plotlims[2]) ang = ang*pi/180 height = height*points hypot = height / cos(ang) difx = (x1 - x0) * conv_factorx dify = (y1 - y0) * conv_factory theta = arctan2(dify,difx) + pi tha = theta + ang thb = theta - ang x1a = x1 + hypot*cos(tha) / conv_factorx x1b = x1 + hypot*cos(thb) / conv_factorx y1a = y1 + hypot*sin(tha) / conv_factory y1b = y1 + hypot*sin(thb) / conv_factory gist.pldj([x0],[y0],[x1],[y1],color=lc,width=width) gist.plfp(array([color],'B'),[y1,y1a,y1b],[x1,x1a,x1b],[3]) return
def plot(self, filename = None): """ Plot the `CellVariable` as a contour plot. """ self._plot() datamin = self._getLimit(('datamin', 'zmin')) datamax = self._getLimit(('datamax', 'zmax')) if datamin == 'e': datamin = None if datamax == 'e': datamax = None datamin, datamax = self._autoscale(vars=self.vars, datamin=datamin, datamax=datamax) if datamax == datamin: datamax = datamin + 1e-10 vertexIDs = self.mesh._orderedCellVertexIDs vertexCoords = self.mesh.vertexCoords xCoords = numerix.take(vertexCoords[0], vertexIDs).flatten("FORTRAN") yCoords = numerix.take(vertexCoords[1], vertexIDs).flatten("FORTRAN") import gist import Numeric gist.plfp(Numeric.array(numerix.array(self.vars[0])), yCoords, xCoords, self.mesh._numberOfFacesPerCell, cmin=datamin, cmax=datamax) import fipy.viewers.gistViewer.colorbar colorbar._color_bar(minz=datamin, maxz=datamax, ncol=240, zlabel=self.vars[0].name) _GistViewer.plot(self, filename = filename)
def barplot(x,y,width=0.8,color=0): """Plot a barplot. Description: Plot a barplot with centers at x and heights y with given color Inputs: x, y -- Centers and heights of bars width -- Relative width of the bars. color -- A number from the current palette. """ N = 4*Numeric.ones(len(x)) hw = width * (x[1]-x[0])/ 2.0 Xa = x-hw Xb = x+hw Ya = Numeric.zeros(len(y),'d') Yb = y X = Numeric.array((Xa,Xa,Xb,Xb)) Y = Numeric.array((Ya,Yb,Yb,Ya)) X = Numeric.reshape(Numeric.transpose(X),(4*len(N),)) Y = Numeric.reshape(Numeric.transpose(Y),(4*len(N),)) try: override = 1 savesys = gist.plsys(2) gist.plsys(savesys) except: override = 0 if _hold or override: pass else: gist.fma() Z = color * Numeric.ones(len(N)) gist.plfp(Z.astype('B'),Y,X,N) return
def barplot(x,y,width=0.8,color=0): """Plot a barplot. Description: Plot a barplot with centers at x and heights y with given color Inputs: x, y -- Centers and heights of bars width -- Relative width of the bars. color -- A number from the current palette. """ N = 4*numpy.ones(len(x), dtype=numpy.int32) hw = width * (x[1]-x[0])/ 2.0 Xa = x-hw Xb = x+hw Ya = numpy.zeros(len(y),'d') Yb = y X = numpy.array((Xa,Xa,Xb,Xb)) Y = numpy.array((Ya,Yb,Yb,Ya)) X = numpy.reshape(numpy.transpose(X),(4*len(N),)) Y = numpy.reshape(numpy.transpose(Y),(4*len(N),)) try: override = 1 savesys = gist.plsys(2) gist.plsys(savesys) except: override = 0 if _hold or override: pass else: gist.fma() Z = color * numpy.ones(len(N)) gist.plfp(Z.astype(numpy.uint8),Y,X,N) return