Matplotlib的三层结构
matplotlib有三个层次的API:
FigureCanvas
代表了绘图区,所有的图像都是在绘图区完成的。
Renderer
代表了渲染器,可以近似理解为画笔,控制如何在 FigureCanvas 上画图。
Artist
代表了具体的图表组件,即调用了Renderer的接口在Canvas上作图。
Artist的分类
primitive
是基本要素,它包含一些我们要在绘图区作图用到的标准图形对象,如曲线Line2D,文字text,矩形Rectangle,图像image等。
container
是容器,即用来装基本要素的地方,包括图形figure、坐标系Axes和坐标轴Axis。他们之间的关系如下图所示:
Matplotlib的标准用法
-
创建一个
Figure
实例。 -
使用
Figure
实例创建一个或者多个Axes
或Subplot
实例。 -
使用
Axes
实例的辅助方法来创建primitive。
练一练
用饼图的面积及颜色展示一组4维数据
rng = np.random.RandomState(0)
x = rng.randn(100)
y = rng.randn(100)
colors = rng.rand(100)
sizes = 1000 * rng.rand(100)
plt.scatter(x, y, c=colors, s=sizes, alpha=0.3,
cmap='viridis')
plt.colorbar(); # 展示色阶
plt.show()