创建
定义一个对象:
fig = plt.figure()
ax = fig.add_subplot(2,2,4) # 前两个参数是维度,最后一个是在第几个
定义多个对象:
fig, (ax1,ax2) = plt.subplots(1,2) # 可以在这里分别指定
fig, ax = plt.subplots(1,2) # 这种就直接全都显示出来了,跟上式一样,使用ax[0], ax[1]来分别控制两张图
绘制数据
np.random.seed(12)
A = np.random.randint(1,10,(2,10))
C = np.arange(0,10,1)
fig, (ax1,ax2,ax3) = plt.subplots(1,3,figsize=(5,5))
# plot是连线,scatter是画点
ax1.plot(C,A[1])
ax2.scatter(A[0],A[1])
ax3.plot(C,A[1])
设置标题和坐标轴
设置名字:
ax1.set_title('Line',fontsize = 10)
ax1.set_xlabel('C',fontsize=12,fontstyle='italic')
ax1.set_ylabel('A[1]',fontsize=12)
设置坐标轴的比例:
ax1.set_aspect('equal') #xy轴的单位相同
ax3.set_aspect('auto') #自动调整比例
显示刻度和限制范围:
ax1.minorticks_on() # 增加更小的刻度
ax2.minorticks_off()
ax1.set_xlim(0,10) #设置数值范围
ax3.set_xlim(0,10) #设置数值范围
ax1.set_ylim(0,10)
ax3.set_ylim(0,10)
自动增加范围和设置网格:
ax1.autoscale(enable=True,axis='both') # 自动设置坐标范围
ax3.autoscale(enable=True,axis='both') # 自动设置坐标范围
ax1.grid(which='minor',axis='both') #加上网格,将一个格子分成四份
设置刻度数字的旋转、位置、颜色,还有边界的颜色
ax1.yaxis.set_tick_params(rotation=45,labelsize=8,colors='r') #设置刻度的旋转,字体大小,颜色
ax1.yaxis.tick_right() # 把刻度设置到右边
ax3.xaxis.set_tick_params(rotation=0,labelsize=8,colors='blue')
ax3.spines['top'].set_color('red') # 设置边界框的颜色
设置坐标轴的位置:
ax3.spines['bottom'].set_position(('data',5))
ax3.spines['right'].set_position(('data',5))
ax3.plot(np.array((1,5)),np.array((1,0)),'k--',lw=2.5,color='r') # 设置线的格式,宽度,颜色
增加注释:
# 设置注释,xy是注释指向的位置,xytext是注释文字指向的位置
ax3.annotate(r'$\alpha%d$'%3,xy=(5,5),xycoords='data',xytext=(6,7),textcoords='data',
fontsize=20,arrowprops=dict(arrowstyle='->',connectionstyle='arc3,rad=.2'))
展示读取的图片
ttt = plt.imread('头像.jpg')
ax2.imshow(ttt)