1.在绘图时,Figure(画布)是最大的,有点类似实体画所用的画板,

fig=plt.Figure()   创建一个空画布

2.在画布中我们可以创建各种子图。子图主要有两类:一类是规规矩矩、排列整齐的子图,叫做subplot;另一类是可以不按规则摆放的子图,叫做Axes。不管怎么摆放,subplot和Axes本质上都是Figure的子图。但本质上Axes更底层,subplot也是调用Axes来实现的,因此subplot在某种程度上是Axes的特例。

3.axis是地地道道的坐标轴,每个子图都有坐标轴,为了获取更好的可读性,每个坐标轴都可以配上标签(label)。例如:x轴有xlabel属性,y轴有ylabel属性。Matplotlib的设计者可能认为,任何一个子图都需要多个轴来呈现(二维图有两个轴,三维图有三个轴),所以就用axis的复数形式Axes表示子图。

4.如果我们想绘制一个大图中套小图的图形,即“图中图”,使用Axes相对容易操控一些。在使用fig.add_axes([left,bottom,width,height])添加子图时,需事先确定画布的位置,这时需要事先确定子图在画布的位置,这时需要四个参数定位:图左下角(即原点的左边坐标和底部坐标)的位置和图形大小,这四个值都是占真个Figure坐标系的百分比来表示的,都是小于1的小数。

import matplotlib.pyplot as plt
x=np.linspace(0,2*np.pi,400)
y=np.sin(x**2)

fig=plt.figure()
left1,bottom1,width1,height1=0.1,0.1,0.8,0.8
#在画布上添加一个子图
axes_1=fig.add_axes([left1,bottom1,width1,height1])
axes_1.scatter(x,y)
axes_1.set_xlabel('x')
axes_1.set_ylabel('y')
axes_1.set_title('title')

#在画布上添加另外一个子图
left2,bottom2,width2,height2=0.6,0.6,0.25,0.25
axes_2=fig.add_axes([left2,bottom2,width2,height2])
axes_2.plot(x,y)
axes_2.set_title('title_inside')

plt.show()

Logo

鸿蒙生态一站式服务平台。

更多推荐