def plot_wireframe(self, *args, **kwargs): ''' creates a three-dimensional wireframe plot :param x: (*array_like*) Optional. X coordinate array. :param y: (*array_like*) Optional. Y coordinate array. :param z: (*array_like*) 2-D z value array. :param cmap: (*string*) Color map string. :param xyaxis: (*boolean*) Draw x and y axis or not. :param zaxis: (*boolean*) Draw z axis or not. :param grid: (*boolean*) Draw grid or not. :param boxed: (*boolean*) Draw boxed or not. :param mesh: (*boolean*) Draw mesh line or not. :returns: Legend ''' if len(args) == 1: x = args[0].dimvalue(1) y = args[0].dimvalue(0) x, y = np.meshgrid(x, y) z = args[0] args = args[1:] else: x = args[0] y = args[1] z = args[2] args = args[3:] zcolors = kwargs.pop('zcolors', False) if not zcolors: line = plotutil.getlegendbreak('line', **kwargs)[0] graphics = GraphicFactory.createWireframe(x.asarray(), y.asarray(), z.asarray(), line) else: cmap = plotutil.getcolormap(**kwargs) if len(args) > 0: level_arg = args[0] if isinstance(level_arg, int): cn = level_arg ls = LegendManage.createLegendScheme( z.min(), z.max(), cn, cmap) else: if isinstance(level_arg, NDArray): level_arg = level_arg.aslist() ls = LegendManage.createLegendScheme( z.min(), z.max(), level_arg, cmap) else: ls = LegendManage.createLegendScheme(z.min(), z.max(), cmap) ls = ls.convertTo(ShapeTypes.Polyline) plotutil.setlegendscheme(ls, **kwargs) graphics = GraphicFactory.createWireframe(x.asarray(), y.asarray(), z.asarray(), ls) visible = kwargs.pop('visible', True) if visible: self.add_graphic(graphics) return graphics
def plot_surface(self, *args, **kwargs): ''' creates a three-dimensional surface plot :param x: (*array_like*) Optional. X coordinate array. :param y: (*array_like*) Optional. Y coordinate array. :param z: (*array_like*) 2-D z value array. :param cmap: (*string*) Color map string. :returns: Legend ''' if len(args) <= 2: x = args[0].dimvalue(1) y = args[0].dimvalue(0) x, y = np.meshgrid(x, y) z = args[0] args = args[1:] else: x = args[0] y = args[1] z = args[2] args = args[3:] if kwargs.has_key('colors'): cn = len(kwargs['colors']) else: cn = None cmap = plotutil.getcolormap(**kwargs) if len(args) > 0: level_arg = args[0] if isinstance(level_arg, int): cn = level_arg ls = LegendManage.createLegendScheme(z.min(), z.max(), cn, cmap) else: if isinstance(level_arg, NDArray): level_arg = level_arg.aslist() ls = LegendManage.createLegendScheme(z.min(), z.max(), level_arg, cmap) else: if cn is None: ls = LegendManage.createLegendScheme(z.min(), z.max(), cmap) else: ls = LegendManage.createLegendScheme(z.min(), z.max(), cn, cmap) ls = ls.convertTo(ShapeTypes.Polygon) edge = kwargs.pop('edge', True) kwargs['edge'] = edge plotutil.setlegendscheme(ls, **kwargs) graphics = JOGLUtil.surface(x.asarray(), y.asarray(), z.asarray(), ls) visible = kwargs.pop('visible', True) if visible: self.add_graphic(graphics) return graphics
def maskout(data, mask, x=None, y=None): """ Maskout data by polygons - NaN values of elements outside polygons. :param data: (*array_like*) Array data for maskout. :param mask: (*list*) Polygon list as maskout borders. :param x: (*array_like*) X coordinate array. :param y: (*array_like*) Y coordinate array. :returns: (*array_like*) Maskouted data array. """ if mask is None: return data elif isinstance(mask, (NDArray, DimArray)): r = ArrayMath.maskout(data.asarray(), mask.asarray()) if isinstance(data, DimArray): return DimArray(r, data.dims, data.fill_value, data.proj) else: return NDArray(r) if x is None or y is None: if isinstance(data, DimArray): x = data.dimvalue(data.ndim - 1) y = data.dimvalue(data.ndim - 2) else: return None if not isinstance(mask, (list, ArrayList)): mask = [mask] if data.ndim == 2 and x.ndim == 1 and y.ndim == 1: x, y = np.meshgrid(x, y) r = GeometryUtil.maskout(data._array, x._array, y._array, mask) if isinstance(data, DimArray): return DimArray(r, data.dims, data.fill_value, data.proj) else: return NDArray(r)
def plot_surface(self, *args, **kwargs): ''' creates a three-dimensional surface plot :param x: (*array_like*) Optional. X coordinate array. :param y: (*array_like*) Optional. Y coordinate array. :param z: (*array_like*) 2-D z value array. :param cmap: (*string*) Color map string. :returns: Legend ''' warnings.warn("plot_surface is deprecated", DeprecationWarning) if len(args) <= 2: x = args[0].dimvalue(1) y = args[0].dimvalue(0) x, y = np.meshgrid(x, y) z = args[0] args = args[1:] else: x = args[0] y = args[1] z = args[2] args = args[3:] if kwargs.has_key('colors'): cn = len(kwargs['colors']) else: cn = None cmap = plotutil.getcolormap(**kwargs) if len(args) > 0: level_arg = args[0] if isinstance(level_arg, int): cn = level_arg ls = LegendManage.createLegendScheme(z.min(), z.max(), cn, cmap) else: if isinstance(level_arg, NDArray): level_arg = level_arg.aslist() ls = LegendManage.createLegendScheme(z.min(), z.max(), level_arg, cmap) else: if cn is None: ls = LegendManage.createLegendScheme(z.min(), z.max(), cmap) else: ls = LegendManage.createLegendScheme(z.min(), z.max(), cn, cmap) ls = ls.convertTo(ShapeTypes.Polygon) facecolor = kwargs.pop('facecolor', None) face_interp = None if not facecolor is None: face_interp = (facecolor == 'interp') if not face_interp: if not facecolor in ['flat', 'texturemap', 'none']: kwargs['facecolor'] = facecolor plotutil.setlegendscheme(ls, **kwargs) graphics = JOGLUtil.surface(x.asarray(), y.asarray(), z.asarray(), ls) if face_interp: graphics.setFaceInterp(face_interp) visible = kwargs.pop('visible', True) if visible: self.add_graphic(graphics) return graphics