Matplotlib 简明教程
Matplotlib - Artists
Understanding Artists in Matplotlib
在 Matplotlib 中,你几乎在绘图上看到的所有内容都是 Artist 的实例,它们是表示绘图的各个组成部分的对象。无论是表示数据的线条、文本标签,甚至是轴上的刻度线,Matplotlib 绘图中的所有内容都是 Artist 对象。
在探讨艺术家层级之前,让我们先观察以下图片以了解 matplotlib 中图形的基本组件 −
在图片中,每个元素(例如表示数据的线和点,以及次刻度线和点关联文本标签)都可以识别为单个艺术家对象。
Artist Hierarchy
在 matplotlib 的层级中,艺术家可以广泛分为两种类型 −
-
Primitive Artists − 这些是绘图的基本构建块。示例包括 Line2D 、 Rectangle 、 Text 、 AxesImage 等等。这些是我们希望绘制到画布上的标准图形对象。
-
Composite Artists − 这些是包含其他艺术家的高级结构。示例包括 Figure 、 Axis 和 Axes 。Figure 就像一个容纳所有内容的画布,而 Axes 表示图形中的一个具体绘图。
Creating and Accessing the Artists
艺术家通常通过 Axes 对象上的绘图方法创建。这些方法不仅促进了可视化元素的创建,还返回具体艺术家实例以对应于绘图元素。
以下是一些常见的绘图方法以及它们生成的对应艺术家 −
-
annotate − 为文本注释生成一个 Annotation 艺术家。
-
bar − 为条形图创建一个 Rectangle 艺术家。
-
errorbar − 为误差棒图生成 Line2D 和 Rectangle 艺术家。
-
fill − 为共享区域生成 Polygon 艺术家。
-
hist − 为直方图创建 Rectangle 艺术家。
-
imshow − 为图像数据生成 AxesImage 艺术家。
-
legend − 为 Axes 图例生成 Legend 艺术家。
-
plot − 为 XY 绘图创建 Line2D 艺术家。当绘制多个数据集时返回一个列表。
-
scatter − 为散点图生成 PolyCollection 艺术家。
-
text − 为在绘图上显示文本生成 Text 艺术家。
Example
让我们看看使用 plot() 方法创建和访问艺术家的示例。
import matplotlib.pyplot as plt
import matplotlib.artist as martist
import numpy as np
# Create a subplot
fig, ax = plt.subplots()
# Generate random data
x, y = np.random.rand(2, 100)
# Use the plot method to create a Line2D artist
lines = ax.plot(x, y, '-', label='example')
# Accessing the Line2D artists created by the plot method
print('Line2D artists created by the plot method:', lines)
# Retrieve all Line2D artists associated with the Axes
lines_on_axes = ax.get_lines()
# Display the retrieved Line2D artists
print('Line2D artists obtained using get_lines():', lines_on_axes)
# Accessing the first (and in this case, the only) Line2D artist
print('Accessing the first Line2D artist', ax.get_lines()[0])
执行上述代码,我们将得到以下输出 −
Line2D artists created by the plot method: [<matplotlib.lines.Line2D object at 0x000001DB3666A620>]
Line2D artists obtained using get_lines():
Accessing the first Line2D artist Line2D(example)