Python 中的 matplotlib.axes.axes.get_clip_box()
原文:https://www.geeksforgeeks.org/matplotlib-axes-axes-get_clip_box-in-python/
Matplotlib 是 Python 中的一个库,是 NumPy 库的数值-数学扩展。轴类包含了大部分的图形元素:轴、刻度、线二维、文本、多边形等。,并设置坐标系。Axes 的实例通过回调属性支持回调。
matplotlib.axes.axes.get_clip_box()函数
matplotlib 库的 Axes 模块中的 Axes.get_clip_box()函数用来获取 clipbox。
语法: Axes.get_clip_box(self)
参数:该方法不接受任何参数。
返回:该方法返回动画状态。
下面的例子说明了 matplotlib.axes.axes.get_clip_box()函数在 matplotlib.axes 中的作用:
例 1:
# Implementation of matplotlib function
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.patches import Ellipse
delta = 45.0
angles = np.arange(0, 360 + delta, delta)
ells = [Ellipse((2, 2), 5, 2, a) for a in angles]
fig, ax = plt.subplots()
print("Value Return by get_clip_box()")
for e in ells:
e.set_clip_box(ax.bbox)
print(e.get_clip_box())
e.set_alpha(0.1)
ax.add_artist(e)
plt.xlim(-1, 5)
plt.ylim(-1, 5)
fig.suptitle('matplotlib.axes.Axes.get_clip_box() \
function Example\n\n', fontweight ="bold")
plt.show()
输出:
Value Return by get_clip_box()
TransformedBbox(
Bbox(x0=0.125, y0=0.10999999999999999, x1=0.9, y1=0.88),
BboxTransformTo(
TransformedBbox(
Bbox(x0=0.0, y0=0.0, x1=6.4, y1=4.8),
Affine2D(
[[100\. 0\. 0.]
[ 0\. 100\. 0.]
[ 0\. 0\. 1.]]))))
TransformedBbox(
Bbox(x0=0.125, y0=0.10999999999999999, x1=0.9, y1=0.88),
BboxTransformTo(
TransformedBbox(
Bbox(x0=0.0, y0=0.0, x1=6.4, y1=4.8),
Affine2D(
[[100\. 0\. 0.]
[ 0\. 100\. 0.]
[ 0\. 0\. 1.]]))))
TransformedBbox(
Bbox(x0=0.125, y0=0.10999999999999999, x1=0.9, y1=0.88),
BboxTransformTo(
TransformedBbox(
Bbox(x0=0.0, y0=0.0, x1=6.4, y1=4.8),
Affine2D(
[[100\. 0\. 0.]
[ 0\. 100\. 0.]
[ 0\. 0\. 1.]]))))
TransformedBbox(
Bbox(x0=0.125, y0=0.10999999999999999, x1=0.9, y1=0.88),
BboxTransformTo(
TransformedBbox(
Bbox(x0=0.0, y0=0.0, x1=6.4, y1=4.8),
Affine2D(
[[100\. 0\. 0.]
[ 0\. 100\. 0.]
[ 0\. 0\. 1.]]))))
TransformedBbox(
Bbox(x0=0.125, y0=0.10999999999999999, x1=0.9, y1=0.88),
BboxTransformTo(
TransformedBbox(
Bbox(x0=0.0, y0=0.0, x1=6.4, y1=4.8),
Affine2D(
[[100\. 0\. 0.]
[ 0\. 100\. 0.]
[ 0\. 0\. 1.]]))))
TransformedBbox(
Bbox(x0=0.125, y0=0.10999999999999999, x1=0.9, y1=0.88),
BboxTransformTo(
TransformedBbox(
Bbox(x0=0.0, y0=0.0, x1=6.4, y1=4.8),
Affine2D(
[[100\. 0\. 0.]
[ 0\. 100\. 0.]
[ 0\. 0\. 1.]]))))
TransformedBbox(
Bbox(x0=0.125, y0=0.10999999999999999, x1=0.9, y1=0.88),
BboxTransformTo(
TransformedBbox(
Bbox(x0=0.0, y0=0.0, x1=6.4, y1=4.8),
Affine2D(
[[100\. 0\. 0.]
[ 0\. 100\. 0.]
[ 0\. 0\. 1.]]))))
TransformedBbox(
Bbox(x0=0.125, y0=0.10999999999999999, x1=0.9, y1=0.88),
BboxTransformTo(
TransformedBbox(
Bbox(x0=0.0, y0=0.0, x1=6.4, y1=4.8),
Affine2D(
[[100\. 0\. 0.]
[ 0\. 100\. 0.]
[ 0\. 0\. 1.]]))))
TransformedBbox(
Bbox(x0=0.125, y0=0.10999999999999999, x1=0.9, y1=0.88),
BboxTransformTo(
TransformedBbox(
Bbox(x0=0.0, y0=0.0, x1=6.4, y1=4.8),
Affine2D(
[[100\. 0\. 0.]
[ 0\. 100\. 0.]
[ 0\. 0\. 1.]]))))
例 2:
# Implementation of matplotlib function
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.patches import Ellipse
NUM = 200
ells = [Ellipse(xy = np.random.rand(2) * 10,
width = np.random.rand(),
height = np.random.rand(),
angle = np.random.rand() * 360)
for i in range(NUM)]
fig, ax = plt.subplots(subplot_kw ={'aspect': 'equal'})
print("Value Return by get_clip_box()")
x = 0
for e in ells:
ax.add_artist(e)
e.set_clip_box(ax.bbox)
e.set_alpha(np.random.rand())
e.set_facecolor(np.random.rand(4))
if x<2:
print(e.get_clip_box())
x+= 1
ax.set_xlim(3, 7)
ax.set_ylim(3, 7)
fig.suptitle('matplotlib.axes.Axes.get_clip_box()\
function Example\n\n', fontweight ="bold")
plt.show()
输出:
Value Return by get_clip_box()
TransformedBbox(
Bbox(x0=0.125, y0=0.10999999999999999, x1=0.9, y1=0.88),
BboxTransformTo(
TransformedBbox(
Bbox(x0=0.0, y0=0.0, x1=6.4, y1=4.8),
Affine2D(
[[100\. 0\. 0.]
[ 0\. 100\. 0.]
[ 0\. 0\. 1.]]))))
TransformedBbox(
Bbox(x0=0.125, y0=0.10999999999999999, x1=0.9, y1=0.88),
BboxTransformTo(
TransformedBbox(
Bbox(x0=0.0, y0=0.0, x1=6.4, y1=4.8),
Affine2D(
[[100\. 0\. 0.]
[ 0\. 100\. 0.]
[ 0\. 0\. 1.]]))))