当前位置: 首页>>代码示例>>Python>>正文


Python transforms.Affine2D方法代码示例

本文整理汇总了Python中matplotlib.transforms.Affine2D方法的典型用法代码示例。如果您正苦于以下问题:Python transforms.Affine2D方法的具体用法?Python transforms.Affine2D怎么用?Python transforms.Affine2D使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在matplotlib.transforms的用法示例。


在下文中一共展示了transforms.Affine2D方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: __init__

# 需要导入模块: from matplotlib import transforms [as 别名]
# 或者: from matplotlib.transforms import Affine2D [as 别名]
def __init__(self, width, height, xdescent=0.,
                 ydescent=0., clip=True):
        """
        *width*, *height* : width and height of the container box.
        *xdescent*, *ydescent* : descent of the box in x- and y-direction.
        """

        super(DrawingArea, self).__init__()

        self.width = width
        self.height = height
        self.xdescent = xdescent
        self.ydescent = ydescent

        self.offset_transform = mtransforms.Affine2D()
        self.offset_transform.clear()
        self.offset_transform.translate(0, 0)

        self.dpi_transform = mtransforms.Affine2D() 
开发者ID:ktraunmueller,项目名称:Computable,代码行数:21,代码来源:offsetbox.py

示例2: __init__

# 需要导入模块: from matplotlib import transforms [as 别名]
# 或者: from matplotlib.transforms import Affine2D [as 别名]
def __init__(self, patch, ox, oy, props=None, **kwargs):
        """
        Create a shadow of the given *patch* offset by *ox*, *oy*.
        *props*, if not *None*, is a patch property update dictionary.
        If *None*, the shadow will have have the same color as the face,
        but darkened.

        kwargs are
        %(Patch)s
        """
        Patch.__init__(self)
        self.patch = patch
        self.props = props
        self._ox, self._oy = ox, oy
        self._shadow_transform = transforms.Affine2D()
        self._update() 
开发者ID:ktraunmueller,项目名称:Computable,代码行数:18,代码来源:patches.py

示例3: __call__

# 需要导入模块: from matplotlib import transforms [as 别名]
# 或者: from matplotlib.transforms import Affine2D [as 别名]
def __call__(self, renderer):
        if isinstance(self._artist, Artist):
            bbox = self._artist.get_window_extent(renderer)
            l, b, w, h = bbox.bounds
            xf, yf = self._ref_coord
            x, y = l + w * xf, b + h * yf
        elif isinstance(self._artist, BboxBase):
            l, b, w, h = self._artist.bounds
            xf, yf = self._ref_coord
            x, y = l + w * xf, b + h * yf
        elif isinstance(self._artist, Transform):
            x, y = self._artist.transform_point(self._ref_coord)
        else:
            raise RuntimeError("unknown type")

        sc = self._get_scale(renderer)
        tr = Affine2D().scale(sc, sc).translate(x, y)

        return tr 
开发者ID:ktraunmueller,项目名称:Computable,代码行数:21,代码来源:text.py

示例4: update_bbox_position_size

# 需要导入模块: from matplotlib import transforms [as 别名]
# 或者: from matplotlib.transforms import Affine2D [as 别名]
def update_bbox_position_size(self, renderer):
        """
        Update the location and the size of the bbox. This method
        should be used when the position and size of the bbox needs to
        be updated before actually drawing the bbox.
        """

        # For arrow_patch, use textbox as patchA by default.

        if not isinstance(self.arrow_patch, FancyArrowPatch):
            return

        if self._bbox_patch:
            posx, posy = self._x, self._y

            x_box, y_box, w_box, h_box = _get_textbox(self, renderer)
            self._bbox_patch.set_bounds(0., 0., w_box, h_box)
            theta = np.deg2rad(self.get_rotation())
            tr = mtransforms.Affine2D().rotate(theta)
            tr = tr.translate(posx + x_box, posy + y_box)
            self._bbox_patch.set_transform(tr)
            fontsize_in_pixel = renderer.points_to_pixels(self.get_size())
            self._bbox_patch.set_mutation_scale(fontsize_in_pixel) 
开发者ID:ktraunmueller,项目名称:Computable,代码行数:25,代码来源:text.py

示例5: _revalidate_path

# 需要导入模块: from matplotlib import transforms [as 别名]
# 或者: from matplotlib.transforms import Affine2D [as 别名]
def _revalidate_path(self):
        """
        update the path if necessary.

        The path for the text is initially create with the font size
        of FONT_SCALE, and this path is rescaled to other size when
        necessary.

        """
        if (self._invalid or
            (self._cached_vertices is None)):
            tr = Affine2D().scale(
                    self._size / text_to_path.FONT_SCALE,
                    self._size / text_to_path.FONT_SCALE).translate(*self._xy)
            self._cached_vertices = tr.transform(self._vertices)
            self._invalid = False 
开发者ID:ktraunmueller,项目名称:Computable,代码行数:18,代码来源:textpath.py

示例6: affine

# 需要导入模块: from matplotlib import transforms [as 别名]
# 或者: from matplotlib.transforms import Affine2D [as 别名]
def affine(pp, offset=(0,0), scale=1, angle=0):
    '''rotate path/patch by angle'''
    if isinstance(pp, (np.ndarray, list, tuple)):
        return rotate(pp, angle)*scale + offset
    
    # define the transformation
    _affine = transforms.Affine2D()
    if angle!=0: _affine.rotate(angle)
    if scale!=1: _affine.scale(scale)
    if not np.allclose(offset, 0): _affine.translate(*offset)

    if hasattr(pp, 'vertices'):
        # for path
        pp = pp.transformed(_affine)
    else:
        # for patch
        pp.set_transform(_affine+plt.gca().transData)
    return pp 
开发者ID:GiggleLiu,项目名称:viznet,代码行数:20,代码来源:shapes.py

示例7: __init__

# 需要导入模块: from matplotlib import transforms [as 别名]
# 或者: from matplotlib.transforms import Affine2D [as 别名]
def __init__(self, width, height, xdescent=0.,
                 ydescent=0., clip=False):
        """
        *width*, *height* : width and height of the container box.
        *xdescent*, *ydescent* : descent of the box in x- and y-direction.
        *clip* : Whether to clip the children
        """

        super().__init__()

        self.width = width
        self.height = height
        self.xdescent = xdescent
        self.ydescent = ydescent
        self._clip_children = clip

        self.offset_transform = mtransforms.Affine2D()
        self.offset_transform.clear()
        self.offset_transform.translate(0, 0)

        self.dpi_transform = mtransforms.Affine2D() 
开发者ID:PacktPublishing,项目名称:Mastering-Elasticsearch-7.0,代码行数:23,代码来源:offsetbox.py

示例8: draw_markers

# 需要导入模块: from matplotlib import transforms [as 别名]
# 或者: from matplotlib.transforms import Affine2D [as 别名]
def draw_markers(self, gc, marker_path, marker_trans, path,
        trans, rgbFace=None):
        '''Markers graphics instructions are stored on a dictionary and
           hashed through graphics context and rgbFace values. If a marker_path
           with the corresponding graphics context exist then the instructions
           are pulled from the markers dictionary.
        '''
        if not len(path.vertices):
            return
        # get a string representation of the path
        path_data = self._convert_path(
            marker_path,
            marker_trans + Affine2D().scale(1.0, -1.0),
            simplify=False)
        # get a string representation of the graphics context and rgbFace.
        style = str(gc._get_style_dict(rgbFace))
        dictkey = (path_data, str(style))
        # check whether this marker has been created before.
        list_instructions = self._markers.get(dictkey)
        # creating a list of instructions for the specific marker.
        if list_instructions is None:
            if _mpl_ge_2_0:
                polygons = marker_path.to_polygons(marker_trans, closed_only=False)
            else:
                polygons = marker_path.to_polygons(marker_trans)
            self._markers[dictkey] = self.get_path_instructions(gc,
                                        polygons, rgbFace=rgbFace)
        # Traversing all the positions where a marker should be rendered
        for vertices, codes in path.iter_segments(trans, simplify=False):
            if len(vertices):
                x, y = vertices[-2:]
                for widget, instructions in self._markers[dictkey]:
                    widget.canvas.add(PushMatrix())
                    widget.canvas.add(Translate(x, y))
                    widget.canvas.add(instructions)
                    widget.canvas.add(PopMatrix()) 
开发者ID:kivy-garden,项目名称:garden.matplotlib,代码行数:38,代码来源:backend_kivy.py

示例9: _update_patch_transform

# 需要导入模块: from matplotlib import transforms [as 别名]
# 或者: from matplotlib.transforms import Affine2D [as 别名]
def _update_patch_transform(self):
        """NOTE: This cannot be called until after this has been added
                 to an Axes, otherwise unit conversion will fail. This
                 maxes it very important to call the accessor method and
                 not directly access the transformation member variable.
        """
        x = self.convert_xunits(self._x)
        y = self.convert_yunits(self._y)
        width = self.convert_xunits(self._width)
        height = self.convert_yunits(self._height)
        bbox = transforms.Bbox.from_bounds(x, y, width, height)
        rot_trans = transforms.Affine2D()
        rot_trans.rotate_deg_around(x, y, self._angle)
        self._rect_transform = transforms.BboxTransformTo(bbox)
        self._rect_transform += rot_trans 
开发者ID:ktraunmueller,项目名称:Computable,代码行数:17,代码来源:patches.py

示例10: _recompute_transform

# 需要导入模块: from matplotlib import transforms [as 别名]
# 或者: from matplotlib.transforms import Affine2D [as 别名]
def _recompute_transform(self):
        """NOTE: This cannot be called until after this has been added
                 to an Axes, otherwise unit conversion will fail. This
                 maxes it very important to call the accessor method and
                 not directly access the transformation member variable.
        """
        center = (self.convert_xunits(self.center[0]),
                  self.convert_yunits(self.center[1]))
        width = self.convert_xunits(self.width)
        height = self.convert_yunits(self.height)
        self._patch_transform = transforms.Affine2D() \
            .scale(width * 0.5, height * 0.5) \
            .rotate_deg(self.angle) \
            .translate(*center) 
开发者ID:ktraunmueller,项目名称:Computable,代码行数:16,代码来源:patches.py

示例11: draw_markers

# 需要导入模块: from matplotlib import transforms [as 别名]
# 或者: from matplotlib.transforms import Affine2D [as 别名]
def draw_markers(self, gc, marker_path, marker_trans, path,
                     trans, rgbFace=None):
        """
        Draws a marker at each of the vertices in path.  This includes
        all vertices, including control points on curves.  To avoid
        that behavior, those vertices should be removed before calling
        this function.

        *gc*
            the :class:`GraphicsContextBase` instance

        *marker_trans*
            is an affine transform applied to the marker.

        *trans*
             is an affine transform applied to the path.

        This provides a fallback implementation of draw_markers that
        makes multiple calls to :meth:`draw_path`.  Some backends may
        want to override this method in order to draw the marker only
        once and reuse it multiple times.
        """
        for vertices, codes in path.iter_segments(trans, simplify=False):
            if len(vertices):
                x, y = vertices[-2:]
                self.draw_path(gc, marker_path,
                               marker_trans +
                               transforms.Affine2D().translate(x, y),
                               rgbFace) 
开发者ID:ktraunmueller,项目名称:Computable,代码行数:31,代码来源:backend_bases.py

示例12: draw_path_collection

# 需要导入模块: from matplotlib import transforms [as 别名]
# 或者: from matplotlib.transforms import Affine2D [as 别名]
def draw_path_collection(self, gc, master_transform, paths, all_transforms,
                             offsets, offsetTrans, facecolors, edgecolors,
                             linewidths, linestyles, antialiaseds, urls,
                             offset_position):
        """
        Draws a collection of paths selecting drawing properties from
        the lists *facecolors*, *edgecolors*, *linewidths*,
        *linestyles* and *antialiaseds*. *offsets* is a list of
        offsets to apply to each of the paths.  The offsets in
        *offsets* are first transformed by *offsetTrans* before being
        applied.  *offset_position* may be either "screen" or "data"
        depending on the space that the offsets are in.

        This provides a fallback implementation of
        :meth:`draw_path_collection` that makes multiple calls to
        :meth:`draw_path`.  Some backends may want to override this in
        order to render each set of path data only once, and then
        reference that path multiple times with the different offsets,
        colors, styles etc.  The generator methods
        :meth:`_iter_collection_raw_paths` and
        :meth:`_iter_collection` are provided to help with (and
        standardize) the implementation across backends.  It is highly
        recommended to use those generators, so that changes to the
        behavior of :meth:`draw_path_collection` can be made globally.
        """
        path_ids = []
        for path, transform in self._iter_collection_raw_paths(
                master_transform, paths, all_transforms):
            path_ids.append((path, transform))

        for xo, yo, path_id, gc0, rgbFace in self._iter_collection(
            gc, master_transform, all_transforms, path_ids, offsets,
            offsetTrans, facecolors, edgecolors, linewidths, linestyles,
                antialiaseds, urls, offset_position):
            path, transform = path_id
            transform = transforms.Affine2D(
                            transform.get_matrix()).translate(xo, yo)
            self.draw_path(gc0, path, transform, rgbFace) 
开发者ID:ktraunmueller,项目名称:Computable,代码行数:40,代码来源:backend_bases.py

示例13: _get_text_path_transform

# 需要导入模块: from matplotlib import transforms [as 别名]
# 或者: from matplotlib.transforms import Affine2D [as 别名]
def _get_text_path_transform(self, x, y, s, prop, angle, ismath):
        """
        return the text path and transform

        *prop*
          font property

        *s*
          text to be converted

        *usetex*
          If True, use matplotlib usetex mode.

        *ismath*
          If True, use mathtext parser. If "TeX", use *usetex* mode.
        """

        text2path = self._text2path
        fontsize = self.points_to_pixels(prop.get_size_in_points())

        if ismath == "TeX":
            verts, codes = text2path.get_text_path(prop, s, ismath=False,
                                                   usetex=True)
        else:
            verts, codes = text2path.get_text_path(prop, s, ismath=ismath,
                                                   usetex=False)

        path = Path(verts, codes)
        angle = angle / 180. * 3.141592
        if self.flipy():
            transform = Affine2D().scale(fontsize / text2path.FONT_SCALE,
                                         fontsize / text2path.FONT_SCALE)
            transform = transform.rotate(angle).translate(x, self.height - y)
        else:
            transform = Affine2D().scale(fontsize / text2path.FONT_SCALE,
                                         fontsize / text2path.FONT_SCALE)
            transform = transform.rotate(angle).translate(x, y)

        return path, transform 
开发者ID:ktraunmueller,项目名称:Computable,代码行数:41,代码来源:backend_bases.py

示例14: _draw_bbox

# 需要导入模块: from matplotlib import transforms [as 别名]
# 或者: from matplotlib.transforms import Affine2D [as 别名]
def _draw_bbox(self, renderer, posx, posy):

        """ Update the location and the size of the bbox
        (FancyBoxPatch), and draw
        """

        x_box, y_box, w_box, h_box = _get_textbox(self, renderer)
        self._bbox_patch.set_bounds(0., 0., w_box, h_box)
        theta = np.deg2rad(self.get_rotation())
        tr = mtransforms.Affine2D().rotate(theta)
        tr = tr.translate(posx + x_box, posy + y_box)
        self._bbox_patch.set_transform(tr)
        fontsize_in_pixel = renderer.points_to_pixels(self.get_size())
        self._bbox_patch.set_mutation_scale(fontsize_in_pixel)
        self._bbox_patch.draw(renderer) 
开发者ID:ktraunmueller,项目名称:Computable,代码行数:17,代码来源:text.py

示例15: draw

# 需要导入模块: from matplotlib import transforms [as 别名]
# 或者: from matplotlib.transforms import Affine2D [as 别名]
def draw(self, renderer):
        if self._sizes is not None:
            self._transforms = [
                transforms.Affine2D().scale(
                    (np.sqrt(x) * self.figure.dpi / 72.0))
                for x in self._sizes]
        return Collection.draw(self, renderer) 
开发者ID:ktraunmueller,项目名称:Computable,代码行数:9,代码来源:collections.py


注:本文中的matplotlib.transforms.Affine2D方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。