Matplotlib中常⽤对象的包含关系为Figure > Axes > (Line2D, Text,etc.)。Figure对象表示一整张图表;其中可包含多个绘图区域,可以理解为多个坐标轴,用Axes表示,也可以称之为子图;在每一个子图中绘制具体的图形对象,如点、线、文本等。
很多情况下直接使用pyplot模块就够用了,但是当有多个图和坐标系时,使用面向对象的创建方式可以更加自由地在子图之间进行切换。
对象的创建
fig = plt.figure() axes = fig.add_subplot(1, 1, 1) axes.plot([1, 2, 3])
axes创建后使用方法与plt没有很大的区别,但是还是会有一些差别,比如标题坐标轴的设置
面向对象与plt的差异
axes.set_title('title') axes.set_xlabel('x') axes.set_ylabel('y') plt.title('title') plt.xlabel('x') plt.ylabel('y')
面向对象与plt的相互转化
但是有时本来只是在用plt作图,为了用add_patch而特意创建一个axes就比较麻烦,此时可以用plt.gca()获取当前的Axes对象
plt.plot([1, 2, 3]) poly = plt.Polygon([[0.5, 1], [1, 1.5], [1, 1]], facecolor='0.9', edgecolor='0.5') plt.gca().add_patch(poly)
以上就是python中Matplotlib面向对象的详解。更多Python学习推荐:PyThon学习网教学中心。