📜  Python中的 Matplotlib.axes.Axes.add_artist()

📅  最后修改于: 2022-05-13 01:54:30.122000             🧑  作者: Mango

Python中的 Matplotlib.axes.Axes.add_artist()

Matplotlib是Python中的一个库,它是 NumPy 库的数值数学扩展。 Axes 类包含大部分图形元素:Axis、Tick、Line2D、Text、Polygon 等,并设置坐标系。 Axes 的实例通过回调属性支持回调。

matplotlib.axes.Axes.add_artist()函数

matplotlib 库的axes 模块中的Axes.add_artist()函数用于将Artist 添加到轴上,并返回艺术家。

下面的示例说明了 matplotlib.axes 中的matplotlib.axes.Axes.add_artist()函数:

示例 1:

# Implementation of matplotlib function
import numpy as np
np.random.seed(19680801)
import matplotlib.pyplot as plt
  
volume = np.random.rayleigh(27, size = 40)
amount = np.random.poisson(10, size = 40)
ranking = np.random.normal(size = 40)
price = np.random.uniform(1, 10, size = 40)
  
fig, ax = plt.subplots()
  
scatter = ax.scatter(volume * 2, amount * 3,
                     c = ranking * 3, 
                     s = 0.3*(price * 3)**2,
                     vmin =-4, vmax = 4,
                     cmap ="Spectral")
  
legend1 = ax.legend(*scatter.legend_elements(num = 5),
                    loc ="upper left", 
                    title ="Ranking")
  
ax.add_artist(legend1)
  
kw = dict(prop ="sizes", num = 5,
          color = scatter.cmap(0.7),
          fmt =" {x:.2f}",
          func = lambda s: np.sqrt(s/.3)/3)
  
legend2 = ax.legend(*scatter.legend_elements(**kw),
                    loc ="lower right",
                    title ="Size")
  
fig.suptitle('matplotlib.axes.Axes.add_artist() \
function Example\n\n', fontweight ="bold")
plt.show()

输出:

示例 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'})
  
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))
  
ax.set_xlim(3, 7)
ax.set_ylim(3, 7)
  
  
fig.suptitle('matplotlib.axes.Axes.add_artist() \
function Example\n\n', fontweight ="bold")
  
plt.show()

输出: