本文整理汇总了Python中matplotlib.transforms.IdentityTransform.inverted方法的典型用法代码示例。如果您正苦于以下问题:Python IdentityTransform.inverted方法的具体用法?Python IdentityTransform.inverted怎么用?Python IdentityTransform.inverted使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类matplotlib.transforms.IdentityTransform
的用法示例。
在下文中一共展示了IdentityTransform.inverted方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _draw_unsampled_image
# 需要导入模块: from matplotlib.transforms import IdentityTransform [as 别名]
# 或者: from matplotlib.transforms.IdentityTransform import inverted [as 别名]
def _draw_unsampled_image(self, renderer, gc):
"""
draw unsampled image. The renderer should support a draw_image method
with scale parameter.
"""
trans = self.get_transform() # axes.transData
# convert the coordinates to the intermediate coordinate (ic).
# The transformation from the ic to the canvas is a pure
# affine transform.
# A straight-forward way is to use the non-affine part of the
# original transform for conversion to the ic.
# firs, convert the image extent to the ic
x_llc, x_trc, y_llc, y_trc = self.get_extent()
xy = trans.transform(np.array([(x_llc, y_llc),
(x_trc, y_trc)]))
_xx1, _yy1 = xy[0]
_xx2, _yy2 = xy[1]
extent_in_ic = _xx1, _xx2, _yy1, _yy2
# define trans_ic_to_canvas : unless _image_skew_coordinate is
# set, it is simply a affine part of the original transform.
if self._image_skew_coordinate:
# skew the image when required.
x_lrc, y_lrc = self._image_skew_coordinate
xy2 = trans.transform(np.array([(x_lrc, y_lrc)]))
_xx3, _yy3 = xy2[0]
tr_rotate_skew = self._get_rotate_and_skew_transform(_xx1, _yy1,
_xx2, _yy2,
_xx3, _yy3)
trans_ic_to_canvas = tr_rotate_skew
else:
trans_ic_to_canvas = IdentityTransform()
# Now, viewLim in the ic. It can be rotated and can be
# skewed. Make it big enough.
x1, y1, x2, y2 = self.axes.bbox.extents
trans_canvas_to_ic = trans_ic_to_canvas.inverted()
xy_ = trans_canvas_to_ic.transform(np.array([(x1, y1),
(x2, y1),
(x2, y2),
(x1, y2)]))
x1_, x2_ = min(xy_[:, 0]), max(xy_[:, 0])
y1_, y2_ = min(xy_[:, 1]), max(xy_[:, 1])
viewLim_in_ic = Bbox.from_extents(x1_, y1_, x2_, y2_)
# get the image, sliced if necessary. This is done in the ic.
im, xmin, ymin, dxintv, dyintv, sx, sy = \
self._get_unsampled_image(self._A, extent_in_ic, viewLim_in_ic)
if im is None:
return # I'm not if this check is required. -JJL
fc = self.axes.patch.get_facecolor()
bg = mcolors.colorConverter.to_rgba(fc, 0)
im.set_bg(*bg)
# image input dimensions
im.reset_matrix()
numrows, numcols = im.get_size()
if numrows <= 0 or numcols <= 0:
return
im.resize(numcols, numrows) # just to create im.bufOut that
# is required by backends. There
# may be better solution -JJL
im._url = self.get_url()
im._gid = self.get_gid()
renderer.draw_image(gc, xmin, ymin, im, dxintv, dyintv,
trans_ic_to_canvas)