Matplotlib.artist.artist.set_transform()
Python matplotlib库的artist模块中的set_transform()方法 用于设置artist变换。
语法: Artist.set_transform(self, t)
参数:该方法只接受一个参数。
- t:这个参数是变换。
Returns:该方法不返回任何值。
下面的例子说明了matplotlib.artist.artist。 set_transform ()函数在matplotlib:
示例1
# Implementation of matplotlib function from matplotlib.artist import Artist import numpy as np import matplotlib.pyplot as plt import matplotlib.transforms as mtransforms delta = 0.25 x = y = np.arange(-3.0, 3.0, delta) X, Y = np.meshgrid(x, y) Z1 = np.exp(-X**2 - Y**2) Z2 = np.exp(-(X - 1)**2 - (Y - 1)**2) Z = (Z1 - Z2) transform = mtransforms.Affine2D().rotate_deg(30) fig, ax = plt.subplots() im = ax.imshow(Z, interpolation ='none', origin ='lower', extent =[-2, 4, -3, 2], clip_on = True) trans_data = transform + ax.transData Artist.set_transform(im, trans_data) x1, x2, y1, y2 = im.get_extent() ax.plot([x1, x2, x2, x1, x1], [y1, y1, y2, y2, y1], "ro-", transform = trans_data) ax.set_xlim(-5, 5) ax.set_ylim(-4, 4) plt.title("""matplotlib.artist.Artist.set_transform() function Example""", fontweight="bold") plt.show()
输出:
示例2
# Implementation of matplotlib function from matplotlib.artist import Artist import matplotlib.pyplot as plt from matplotlib import collections, colors, transforms import numpy as np nverts = 50 npts = 100 r = np.arange(nverts) theta = np.linspace(0, 2 * np.pi, nverts) xx = r * np.sin(theta) yy = r * np.cos(theta) spiral = np.column_stack([xx, yy]) rs = np.random.RandomState(19680801) xyo = rs.randn(npts, 2) colors = [colors.to_rgba(c) for c in plt.rcParams['axes.prop_cycle'].by_key()['color']] fig, ax1 = plt.subplots() col = collections.RegularPolyCollection( 7, sizes = np.abs(xx) * 10.0, offsets = xyo, transOffset = ax1.transData) trans = transforms.Affine2D().scale(fig.dpi / 72.0) Artist.set_transform(col, trans) ax1.add_collection(col, autolim = True) col.set_color(colors) plt.title("""matplotlib.artist.Artist.set_transform() function Example""", fontweight="bold") plt.show()
输出:
版权声明:本页面内容旨在传播知识,为用户自行发布,若有侵权等问题请及时与本网联系,我们将第一时间处理。E-mail:284563525@qq.com