matplotlib作图代码网上很多,这里主要以理解其逻辑为主。
先导入库
import matplotlib.pyplot as plt import numpy as np
实现逻辑有两种
第一种是plt
fig=plt.figure(num=1,figsize=(4,4)) plt.plot([1,2,3,4],[1,2,3,4]) plt.show() # 使用plt添加子图 fig=plt.figure(num=1,figsize=(4,4)) plt.subplot(111) plt.plot([1,2,3,4],[1,2,3,4]) plt.show()
第二种是ax
fig=plt.figure(num=1,figsize=(4,4)) ax=fig.add_subplot(111) # fig,ax = plt.subplots() ax.plot([1,2,3,4],[1,2,3,4]) plt.show()
fig相当于一个空的画布,ax定义一块区域。
第一种方法,先生成了一个画布,然后在这个画布上隐式生成一个画图区域进行画图。
第二种方法先是生成了一个区域即ax,然后利用ax对象在其区域内进行绘图,好处是后面进行修饰时比较方便。(此处语言表述可能不准确)
以下举一个复杂子图构建的例子
import matplotlib.gridspec as gridspec#调用网格 fig=plt.figure(num=1,figsize=(4,6))#创建画布 gs=gridspec.GridSpec(3,3)#设定网格 ax1=fig.add_subplot(gs[0,:])#选定网格 ax1.plot([1,2,3,4],[1,2,3,4]) ax2=fig.add_subplot(gs[1,:-1]) ax2.plot([1,2,3,4],[1,2,3,4]) ax3=fig.add_subplot(gs[1:,-1]) ax3.plot([1,2,3,4],[1,2,3,4]) ax4=fig.add_subplot(gs[2,0]) ax4.plot([1,2,3,4],[1,2,3,4]) ax5=fig.add_subplot(gs[2,1]) ax5.plot([1,2,3,4],[1,2,3,4]) plt.show()
常用语句(来源见参考资料2)
app=[78,80,79,81,91,95,96] x=np.arange(1,8) fig=plt.figure(num=1,figsize=(6,4)) ax=fig.add_subplot(111) ax.plot(x,app) #设置字体 plt.rcParams["font.family"]="SimHei" #设置刻度范围 ax.set_xlim(1,7.1)#x轴从1到7.1 ax.set_ylim(40,100)#y轴从40到100 #设置显示的刻度 ax.set_xticks(np.linspace(1,7,7)) ax.set_yticks(np.linspace(50,100,6)) #设置刻度标签 ax.set_xticklabels(["星期一","星期二","星期三","星期四","星期五","星期六","星期日"],fontproperties="SimHei",fontsize=12) #ylabel ax.set_yticklebels(["50kg","60kg","70kg","80kg","90kg","100kg"],fontsize=12) plt.show()
参考资料
matplotlib.pyplot的使用总结大全(入门加进阶)
Matplotlib中的plt和ax都是啥?



