Python matplotlib基础操作

创建

定义一个对象:

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)

在这里插入图片描述

发布了63 篇原创文章 · 获赞 2 · 访问量 8015

猜你喜欢

转载自blog.csdn.net/McEason/article/details/104414647